PHP用Where子句读取XML

时间:2011-11-25 14:32:23

标签: php xml where

假设我有这个XML文件。

<book>
    <id>1</id>
    <title>Harry Potter - bla bla bla</title>
    <author>J.K Rowling</author>
</book>
<book>
    <id>2</id>
    <title>Other book</title>
    <author>A Name</author>
</book>

有没有办法让我可以通过PHP阅读并获得#2 id,或者我是否必须使用IF? 像jQuery选择器':eq(2)'或MySql'WHERE id = 2'

2 个答案:

答案 0 :(得分:3)

尝试使用php的SimpleXML解析器:http://php.net/manual/en/book.simplexml.php

答案 1 :(得分:2)

如果您想要的只是第二个,您可以使用DOM。它更简单。

$dom->loadXML(<<<XML
<book>
    <id>1</id>
    <title>Harry Potter - bla bla bla</title>
    <author>J.K Rowling</author>
</book>
<book>
    <id>2</id>
    <title>Other book</title>
    <author>A Name</author>
</book>
XML;);

$book=$dom->getElementsByTagName('book')->item(1);

编辑:我刚看到你说你在寻找第二个ID,而不是第二个元素,你需要xpath。

$xml=new SimpleXMLElement(<<<XML
<book>
    <id>1</id>
    <title>Harry Potter - bla bla bla</title>
    <author>J.K Rowling</author>
</book>
<book>
    <id>2</id>
    <title>Other book</title>
    <author>A Name</author>
</book>
XML;);
$result=$xml->xpath('/book[id=2]');

有关xpath here

的更多信息