XML with SimpleXML and DOM
| Read with SimpleXML | |
| XPath one-liners | |
| Build with DOMDocument | |
| Escape output |
Read with SimpleXML
SimpleXML turns an XML document into an object that you can read with normal property access. It is the fastest way to read small config files and API responses.
Load from a string with simplexml_load_string or from a file with simplexml_load_file. Check for false before reading nodes.
$xml = simplexml_load_string("<root><item>Ada</item></root>"); echo $xml->item;
XPath one-liners
XPath finds nodes by path, attribute, or text without manual loops. One short query can replace a whole nested loop over children.
Method xpath returns an array of matches. An empty array means nothing matched.
$items = $xml->xpath("//item"); echo count($items);
Build with DOMDocument
DOMDocument builds new XML node by node. You create elements, attach them to parents, and serialize once at the end.
This approach keeps encoding and structure correct. It avoids broken markup from string concatenation.
$dom = new DOMDocument("1.0", "UTF-8"); $root = $dom->createElement("root"); $dom->appendChild($root); echo $dom->saveXML();
Escape output
Text taken from XML is still untrusted input for HTML output. Escape it at the moment you print it into a page.
Cast the node to string first, then pass it through htmlspecialchars with an explicit charset.
echo htmlspecialchars((string)$xml->item, ENT_QUOTES, "UTF-8");
Next: CSV files
Article author: Arthur Isaev