PHP SimpleXMLElement::saveXML() Function
Definition and Usage
XML is a mark-up language to share the data across the web, XML is for both human read-able and machine read-able. The SimpleXMLElement class represents an XML document in PHP.
The SimpleXMLElement::saveXML() function forms an XML string of the current SimpleXMLElement object and returns it. If you pass a string value representing a file name as a parameter this function saves the XML string in the specified file.
Syntax
SimpleXMLElement::saveXML([$file_name]);
Parameters
| Sr.No | Parameter & Description |
|---|---|
| 1 |
file_name (Optional) This is a string value representing the file name where you need top store the formed XML string. |
Return Values
This function returns a string representing the XML string in case of success and the boolean value FALSE in case of failure.
If you have passed the optional file name as a parameter then, this function returns TRUE incase of success and FALSE incase of failure.
PHP Version
This function was first introduced in PHP Version 5 and works in all the later versions.
Example
Following example demonstrates the usage of the SimpleXMLIterator::saveXML() function.
<html>
<head>
<body>
<?php
$str = "<?xml version='1.0' standalone='yes'?>
<Tutorial>
<Name>JavaFX</Name>
<Pages>535</Pages>
<Author>Krishna</Author>
<Version>11</Version>
</Tutorial>";
$xml = new SimpleXMLElement($str);
$xml_string = $xml->saveXML();
print($xml_string);
?>
</body>
</head>
</html>
This will produce following result −
JavaFX 535 Krishna 11
Example
Following is an example of this function with optional parameter file name −
<html>
<head>
<body>
<?php
$str = "<?xml version='1.0' standalone='yes'?>
<Tutorial>
<Name>JavaFX</Name>
<Pages>535</Pages>
<Author>Krishna</Author>
<Version>11</Version>
</Tutorial>";
$xml = new SimpleXMLElement($str);
//Adding the child node
$xml->addChild('Price', '600');
$xml->saveXML("output.xml");
?>
</body>
</head>
</html>
If you verify the contents of the output file output.xml you can observe the added XML element as shown below −
<?xml version="1.0" standalone="yes"?> <Tutorial> <Name>JavaFX</Name> <Pages>535</Pages> <Author>Krishna</Author> <Version>11</Version> <Price>600</Price> </Tutorial>
Example
In the following example we are trying to add a new record to an XML file −
Data.xml:
<?xml version="1.0" encoding="utf-8"?>
<Tutorials>
<Tutorial>
<Name>JavaFX</Name>
<Pages>535</Pages>
<Author>Krishna</Author>
<Version>11</Version>
</Tutorial>
<Tutorial>
<Name>CoffeeScript</Name>
<Pages>235</Pages>
<Author>Kasyap</Author>
<Version>2.5.1</Version>
</Tutorial>
</Tutorials>
Sample.xml
<html>
<head>
<body>
<?php
$doc = new DOMDocument;
$xml = simplexml_load_file("Data.xml");
//file to SimpleXMLElement
$simpleXmlElement = simplexml_import_dom($xml);
//Adding the child node
$child = $xml->addChild('Tutorial');
$child->addChild('Name', 'OpenCV');
$child->addChild('Pages', '230');
$child->addChild('Author', 'Maruthi');
$child->addChild('Version', '5.5');
$xml->saveXML("output.xml");
print("<br><br>");
foreach($xml->children() as $tut) {
print($tut->Name ."<br>");
print($tut->Pages ."<br>");
print($tut->Author ."<br>");
print($tut->Version ."<br>");
print("<br>");
}
?>
</body>
</head>
</html>
This will produce following result −
JavaFX 535 Krishna 11 CoffeeScript 235 Kasyap 2.5.1 OpenCV 230 Maruthi 5.5