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