2013-10-27 102 views
0

我需要从结构如下例所示的xml文件中检索“TotalBooks”的值。如何获取xml元素的值

我可以通过计算“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

向我们展示你的PHP代码。除非我们知道如何检索数据,否则我们无法帮助您。 – DrinkJavaCodeJava

回答

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

这工作完美。谢谢。 – user2925853

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