user2925853
user2925853

Reputation: 3

How to get value of xml element

I need to retrieve the value of the value of "TotalBooks" from an xml file that is structured like the example below.

I can get the equivalent of the "MatchesFound" value by doing a count of "book" and I can successfully get the information for each book.

However, I cannot get the actual value shown in the xml file for "MatchesFound", "TotalBooks", and "Page".

I'm using php with simplexml_load_file. Any help I can get is appreciated. Thanks.

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<MatchesFound>2</MatchesFound>
<TotalBooks>563</TotalBooks>
<Page>1</Page>
<book>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price currency="USD">30.00</price>
</book>
<book>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price currency="USD">29.99</price>
</book>
</bookstore>

Upvotes: 0

Views: 77

Answers (2)

Gilles Qu&#233;not
Gilles Qu&#233;not

Reputation: 185841

Using :

<?php
$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <MatchesFound>2</MatchesFound>
  <TotalBooks>563</TotalBooks>
  <Page>1</Page>
  <book>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price currency="USD">30.00</price>
  </book>
  <book>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price currency="USD">29.99</price>
  </book>
</bookstore>
XML;

$xml = new SimpleXMLElement($string);

$result = $xml->xpath('//TotalBooks');

while(list( , $node) = each($result)) {
    echo "$node\n";
}

?>

See http://php.net/manual/en/simplexmlelement.xpath.php

Upvotes: 0

Flash Thunder
Flash Thunder

Reputation: 12045

$xml = new SimpleXMLElement($xmlString);
echo $xml->TotalBooks;

Upvotes: 2

Related Questions