我有一个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(),并且当我必须再次搜索时,在另一个节点内找到节点中的节点时,手动执行此操作会成为问题。
答案 0 :(得分:2)
$doc = new DOMDocument();
$doc->loadXML($your_xml);
$x = new DOMXPath($doc);
$id = $x->query("//title[. = 'Clean Windows']/../id/text()")->item(0)->wholeText;