使用PHP循环XML

时间:2016-11-11 20:05:01

标签: php xml parsing

我正在尝试使用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年开始查找图书?

2 个答案:

答案 0 :(得分:0)

有什么事情吗?

$bookstore = new SimpleXMLElement($xml);

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

答案 1 :(得分:-1)

由于您使用SimpleXML,因此您应该查看SimpleXMLElement::xpath

通过w3schools.com XPath Tutorial搜索,此示例似乎来自此处,您还可以在XPath Syntax找到一个示例

/bookstore/book[year='2005']