Example
Convert an XML string into an object, then output keys and elements of the object:
html
<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml=simplexml_load_string($note);
print_r($xml);
?>
Definition and Usage
The simplexml_load_string() function converts a well-formed XML string into an object.
Syntax
text
simplexml_load_string(data, class, options, ns, is_prefix)
Parameter Values
| Parameter | Description |
|---|---|
| data | Required. Specifies a well-formed XML string |
| class | Optional. Specifies the class of the new object |
| options | Optional. Specifies additional Libxml parameters. Is set by specifying the option and 1 or 0 (TRUE or FALSE, e.g. LIBXML_NOBLANKS(1)) Possible values: LIBXML_COMPACT - Activate nodes allocation optimization (may speed up application) LIBXML_DTDATTR - Set default DTD attributes LIBXML_DTDLOAD - Load external subset LIBXML_DTDVALID - Validate with the DTD LIBXML_NOBLANKS - Remove blank nodes LIBXML_NOCDATA - Merge CDATA as text nodes LIBXML_NOEMPTYTAG - Expand empty tags (e.g. <br/> to <br></br>), only available in the DOMDocument->save() and DOMDocument->saveXML() functions LIBXML_NOENT - Substitute entities LIBXML_NOERROR - Do not show error reports LIBXML_NONET - Disable network access while loading documents LIBXML_NOWARNING - Do not show warning reports LIBXML_NOXMLDECL - Drop the XML declaration when saving a document LIBXML_NSCLEAN - Remove redundant namespace declarations LIBXML_PARSEHUGE - Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects limits like maximum depth of a document and limits of the size of text nodes LIBXML_XINCLUDE - Implement XInclude substitution LIBXML_ERR_ERROR - Get recoverable errors LIBXML_ERR_FATAL - Get fatal errors LIBXML_ERR_NONE - Get no errors LIBXML_ERR_WARNING - Get simple warnings LIBXML_VERSION - Get libxml version (e.g. 20605 or 20617) LIBXML_DOTTED_VERSION - Get dotted libxml version (e.g. 2.6.5 or 2.6.17) |
| ns | Optional. Specifies a namespace prefix or URI |
| is_prefix | Optional. Specifies a Boolean value. TRUE if ns is a prefix. FALSE if ns is a URI. Default is FALSE |
Technical Details
| Return Value: | A SimpleXMLElement object on success. FALSE on failure |
|---|---|
| PHP Version: | 5+ |
More Examples
Example
Output the data from each element in the XML string:
html
<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml=simplexml_load_string($note);
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
Example
Output the element's name and data for each child node in the XML string:
html
<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml=simplexml_load_string($note);
echo $xml->getName() . "<br>";
foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br>";
}
?>