simplexmlelement recorrer nodos leer extension crear con cargar atributos acceder php formatting simplexml

php - recorrer - Pretificar/Formatear salida en SimpleXML



simplexmlelement() (2)

AFAIK simpleXML no puede hacerlo solo.

Sin embargo, DOMDocument puede.

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

Tengo este script simplexml que estoy usando para publicar datos ingresados ​​desde un formulario.

$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");

y cuando sale se ve así en una línea:

<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>

Pero probé el método que se encuentra AQUÍ y ESTO TAMBIÉN, pero ni formateé el XML correctamente en las líneas, ya que deberían ser como

<link> <title></title> <url></url> </link>

En el primer enlace de referencia, incluso cambié loadXML para load , porque loadXML espera una cadena como XML. ¿Alguien puede ayudarme a encontrar una solución a esto por favor?


Creo que la respuesta aceptada anteriormente de la autoridad de no resolvió la pregunta anterior. Ref: [Intenté su respuesta y recibí un error fatal: Llamar al método no definido DOMElement :: saveXML () en la línea donde $formatted = $dom->saveXML();

$simplexml = simplexml_load_file("links.xml"); $dom = new DOMDocument(''1.0''); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXML($simplexml->asXML()); $xml = new SimpleXMLElement($dom->saveXML()); $person = $xml->addChild("link"); $person->addChild("title", "Q: ".$x_title); $person->addChild("url", "questions_layout.php#Question$id"); $xml->saveXML("links.xml");