Loop Through an XML with PHP


Loop Through an XML with PHP

我正在尝试使用PHP遍历这个XML文件,以便我只能显示2005年的图书!

    <?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年的书籍?

是这样的吗?

$bookstore = new SimpleXMLElement($xml);
foreach($bookstore as $book){
    if($book->year == 2005){
        //do something
    }
}

既然您使用的是SimpleXML,那么您应该查看SimpleXMLElement::xpath

通过搜索w3schools.com XPath教程(这个示例似乎来自其中),您还可以在XPath语法

中找到一个示例。
/bookstore/book[year='2005']