<parents>
<parent>
<item>
<name>200</name>
</item>
<item>
<name>201</name>
</item>
<item>
<name>204</name>
</item>
</parent>
<parent>
<item>
<name>203</name>
</item>
</parent>
</parents>
我需要第一个parent
节点,因为我有一个与项目对应的ID列表。试想一下:如何根据多个子节点值获取父节点?
list = ['200', '201'];
因为200
在第一parent
节点被发现,我想要那个parent
节点。如果200
不存在,我仍然会得到父节点,因为201
是位于第一个parent
中的/name/text()
的值。
我的唯一要求是我需要抓住parent
节点,如果发现我的list
中的ID为one
。
目前我只测试为先,就像这样:
//name/child::text()[.="' . $firstKey . '"]/../../../../
凡$firstKey
是在列表中,200
的第一个元素的引用。这并不理想,因为它不检查所有值,但只检查第一个值。
好问题,+1。查看我对两种解决方案的回答 - 一个XPath 1.0 + XSLT解决方案和一个XPath 2.0解决方案 –