Prettifying/Formatting output in SimpleXML

formatting, php, simplexml

Solution

AFAIK simpleXML can't do it on its own.

However, DOMDocument can.

$dom = dom_import_simplexml($sxe)->ownerDocument;
$dom->formatOutput = TRUE;
$formatted = $dom->saveXML();

Problem

I have this simplexml script i'm using to post data entered from a form. ``` $xml = simplexml_load_file("links.xml"); $sxe = new SimpleXMLElement($xml->asXML()); $person = $sxe->addChild("link"); $person->addChild("title", "Q: ".$x_title); $person->addChild("url", "questions_layout.php#Question$id"); $sxe->asXML("links.xml"); ``` and when it comes out it looks like this on one line: ``` <link><title>Alabama State</title><url>questions_layout.php#Question37</url></link><link><title>Michigan State</title><url>questions_layout.php#Question37</url></link></pages> ``` But i've tried the method found HERE and THIS AS WELL but neither format the XML correctly in the lines as they should be like ``` <link> <title></title> <url></url> </link> ``` In the first reference link I even changed `loadXML` to `load`, because `loadXML` expects a string as XML. Can somebody help me find a solution to this please?

Original source

Related problems