通过使用PHP循环通过XML

问题描述:

我想通过使用PHP循环这个XML文件,以便我可以从2005年仅显示书籍!通过使用PHP循环通过XML

<?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">XQuery Kick Start</title> 
     <author>James McGovern</author> 
     <author>Per Bothner</author> 
     <author>Kurt Cagle</author> 
     <author>James Linn</author> 
     <author>Vaidyanathan Nagarajan</author> 
     <year>2003</year> 
     <price>49.99</price> 
     </book> 
     <book category="web" cover="paperback"> 
     <title lang="en">Learning XML</title> 
     <author>Erik T. Ray</author> 
     <year>2003</year> 
     <price>39.95</price> 
     </book> 
    </bookstore> 

我正在使用simplexml_load_string。在PHP中将代码转换为字符串。

我将如何使用PHP从2005年查找书籍?

+0

为例你的问题是? –

+1

请将您到目前为止的代码添加到问题中。我们不能没有。 – arkascha

这是什么?

$bookstore = new SimpleXMLElement($xml); 

foreach($bookstore as $book){ 
    if($book->year == 2005){ 
     //do something 
    } 
} 
+0

谢谢我现在就试试你的代码。 – DonnyV

由于您使用SimpleXML,你应该看看SimpleXMLElement::xpath

搜索通过w3schools.com XPath Tutorial,在这个例子似乎是从,你还会发现在XPath Syntax

/bookstore/book[year='2005']