This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

  • 9.1 PHP XML Parsers
  • 9.2 PHP SimpleXML Parser
  • 9.3 PHP SimpleXML - Get
  • 9.4 PHP XML Expat
  • 9.5 PHP XML DOM
  • 9.3 PHP SimpleXML - Get

  • SimpleXML is a PHP extension that allows us to easily manipulate and get XML data.

    PHP SimpleXML - Get Node Values

    Get the node values from the "note.xml" file:

    Example 1: PHP SimpleXML - Get Node Values
    <?php
    $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
    echo $xml->to . "<br>";
    echo $xml->from . "<br>";
    echo $xml->heading . "<br>";
    echo $xml->body;
    ?>

    The output of the code above will be:

    Tove
    Jani
    Reminder
    Don't forget me this weekend!

    Another XML File

    Assume we have an XML file called "books.xml", that looks like this:

    <?xml version="1.0" encoding="utf-8"?>
    <bookstore>
      <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
      </book>
      <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
      </book>
      <book category="WEB">
        <title lang="en-us">XQuery Kick Start</title>
        <author>James McGovern</author>
        <year>2003</year>
        <price>49.99</price>
      </book>
      <book category="WEB">
        <title lang="en-us">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
      </book>
    </bookstore>

    PHP SimpleXML - Get Node Values of Specific Elements

    The following example gets the node value of the <title> element in the first and second <book> elements in the "books.xml" file:

    Example 2: PHP SimpleXML - Get Node Values of Specific Elements
    <?php
    $xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
    echo $xml->book[0]->title . "<br>";
    echo $xml->book[1]->title;
    ?>

    The output of the code above will be:

    Everyday Italian
    Harry Potter

    PHP SimpleXML - Get Node Values - Loop

    The following example loops through all the <book> elements in the "books.xml" file, and gets the node values of the <title>, <author>, <year>, and <price> elements:

    Example 3: PHP SimpleXML - Get Node Values - Loop
    <?php
    $xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
    foreach($xml->children() as $books) {
      echo $books->title . ", ";
      echo $books->author . ", ";
      echo $books->year . ", ";
      echo $books->price . "<br>";
    }
    ?>

    The output of the code above will be:

    Everyday Italian, Giada De Laurentiis, 2005, 30.00
    Harry Potter, J K. Rowling, 2005, 29.99
    XQuery Kick Start, James McGovern, 2003, 49.99
    Learning XML, Erik T. Ray, 2003, 39.95

    PHP SimpleXML - Get Attribute Values

    The following example gets the attribute value of the "category" attribute of the first <book> element and the attribute value of the "lang" attribute of the <title> element in the second <book> element:

    Example 4: PHP SimpleXML - Get Attribute Values
    <?php
    $xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
    echo $xml->book[0]['category'] . "<br>";
    echo $xml->book[1]->title['lang'];
    ?>

    The output of the code above will be:

    COOKING
    en

    PHP SimpleXML - Get Attribute Values - Loop

    The following example gets the attribute values of the <title> elements in the "books.xml" file:

    Example 5: PHP SimpleXML - Get Attribute Values - Loop
    <?php
    $xml=simplexml_load_file("books.xml") or die("Error: Cannot create object");
    foreach($xml->children() as $books) {
      echo $books->title['lang'];
      echo "<br>";
    }
    ?>

    The output of the code above will be:

    en
    en
    en-us
    en-us

    More PHP SimpleXML

    For more information about the PHP SimpleXML functions, visit W3Schools.com PHP SimpleXML Reference.

    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    Animated PHP icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon