SimpleXMLElement::asXML

(PHP 5 >= 5.0.1)

SimpleXMLElement::asXMLReturn a well-formed XML string based on SimpleXML element

Descrição

public SimpleXMLElement::asXML ([ string $filename ] )

The asXML method formats the parent object's data in XML version 1.0.

Parâmetros

filename

If specified, the function writes the data to the file rather than returning it.

Valor Retornado

If the filename isn't specified, this function returns a on success and FALSE on error. If the parameter is specified, it returns TRUE if the file was written successfully and FALSE otherwise.

Exemplos

Exemplo #1 Get XML

<?php
$string 
= <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo 
$xml->asXML();

?>

O exemplo acima irá imprimir:

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

asXML also works on Xpath results:

Exemplo #2 Using asXML() on results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result $xml->xpath('/a/b/c');

while(list( , 
$node) = each($result)) {
    echo 
$node->asXML();
}
?>

O exemplo acima irá imprimir:

<c>text</c><c>stuff</c>

Veja Também

User Contributed Notes

jcr at di dot uminho dot pt
Code snippet to load a XML document, increment an attribute and store it again.
My XML looks like:
<?xml version="1.0" encoding="ISO-8859-1"?>
<doctypes counter="16">
    <doctype id="d1">
        <name>Carta</name>
        <acro>CA</acro>
    </doctype>
...
</doctypes>

I want to retrieve the counter attribute, increment it, and store the new document at the end:

<?php
  $document
= simplexml_load_file("mydoc.xml");
 
$cont = (integer) $document['counter'];
 
$document['counter'] = $cont+1;
 
$document->asXML("mydoc.xml");
?>