PHP DOMDocument getElementsByTagName()

时间:2011-04-04 19:30:59

标签: php xml

我有一个XML文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xml>
    <job>
        <id>4200021</id>
        <sector>Downtown</sector>
        <title>Clean Windows</title>
    </job>

    <job>
        <id>2100021</id>
        <sector>Downtown</sector>
        <title>Fix Manholes</title>
    </job>
</xml>

我正在使用PHP的DOMDocument,我试图通过搜索标题来获得<id>的工作。

我用它来获取有问题的<job>节点:

$job = $jobDoc->getElementsByTagName('Clean Windows')->item(0)->parentNode;

但是,我通过为每个节点调用nodeName来迭代所有节点以获取正确的ID,是否有另一种更简单的方法来使用DOMDocument查找正确的id?我无法在parentNode上再次调用getElementsByTagName(),并且当我必须再次搜索时,在另一个节点内找到节点中的节点时,手动执行此操作会成为问题。

1 个答案:

答案 0 :(得分:2)

$doc = new DOMDocument();
$doc->loadXML($your_xml);
$x = new DOMXPath($doc);
$id = $x->query("//title[. = 'Clean Windows']/../id/text()")->item(0)->wholeText;