如何获取xml元素的值

时间:2013-10-27 20:12:55

标签: php xml

我需要从xml文件中检索“TotalBooks”值的值,该文件的结构类似于下面的示例。

通过计算“book”,我可以得到相当于“MatchesFound”的值,我可以成功获取每本书的信息。

但是,我无法获取xml文件中显示的“MatchesFound”,“TotalBooks”和“Page”的实际值。

我正在使用php和simplexml_load_file。我能得到的任何帮助表示赞赏。感谢。

<?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>

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

使用

<?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";
}

?>

请参阅http://php.net/manual/en/simplexmlelement.xpath.php