<?Php
$str_xml = <<<XML
<?xml version='1.0' standalone='yes'?>
<details>
<name>Abcd</name>
<address>
<door_no>234-ac</door_no>
<street>Great Wall</street>
<city>Alabama</city>
</address>
</details>
XML;
?>
We have also used getName to display the tag name along with the children function. Here is the php code.
<?php
require "xml-sample1.php";
$main1 = new SimpleXMLElement($str_xml);
foreach ($main1->children() as $child1) {
echo '<br><b>getName</b> : '.$child1->getName().' <b>children</b> : '. $child1;
foreach ($child1->children() as $child2) {
echo '<br><b>getName</b> : '.$child2->getName().' <b>children</b> : '. $child2;
}
}
?>
The output is
getName : name children : Abcd
getName : address children :
getName : door_no children : 234-ac
getName : street children : Great Wall
getName : city children : Alabama
$xml = simplexml_load_file('file-xml-demo.xml');
echo $xml->details[0]->name; // Output John Deo
echo $xml->details[0]->count(); // Output 3
echo "<br>";
echo $xml->details[2]->name; // Output Arnold
To display all the data.
$xml = simplexml_load_file('file-xml-demo.xml');
foreach ($xml as $child1) {
echo "<br>". $child1->getName()." : $child1";
foreach ($child1 as $child2) {
echo "<br>". $child2->getName()." : $child2";
}
}
$xml = <<<XML
<bookstore>
<book>
<title>PHP Basics</title>
<author>John Doe</author>
</book>
<book>
<title>Learning XML</title>
<author>Jane Smith</author>
</book>
</bookstore>
XML;
$xmlObject = simplexml_load_string($xml);
foreach($xmlObject->children() as $book) {
echo $book->title . " by " . $book->author . "<br>";
}
$xml = <<<XML
<bookstore>
<book>
<title>PHP Advanced</title>
<author>John Doe</author>
<publisher>
<name>TechBooks</name>
<year>2021</year>
</publisher>
</book>
</bookstore>
XML;
$xmlObject = simplexml_load_string($xml);
foreach($xmlObject->book->children() as $child) {
if ($child->getName() == "publisher") {
foreach($child->children() as $publisherDetail) {
echo $publisherDetail->getName() . ": " . $publisherDetail . "<br>";
}
}
}
$xml = <<<XML
<bookstore>
<book>
<title>PHP Advanced</title>
<author>John Doe</author>
</book>
</bookstore>
XML;
$xmlObject = simplexml_load_string($xml);
// Check if 'publisher' exists
if (isset($xmlObject->book->publisher)) {
echo "Publisher: " . $xmlObject->book->publisher->name;
} else {
echo "Publisher info not available.";
}
$xml = "<bookstore><book><title>PHP Advanced</title></bookstore>"; // missing closing tag for <book>
libxml_use_internal_errors(true); // Suppress errors
$xmlObject = simplexml_load_string($xml);
if ($xmlObject === false) {
echo "Failed to load XML. Errors: ";
foreach (libxml_get_errors() as $error) {
echo $error->message;
}
libxml_clear_errors();
} else {
echo "XML loaded successfully.";
}
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.