我正在使用PHP解析XML,并希望使用xpath根据兄弟节点值返回节点值。我在谷歌上搜索了几个小时,但一无所获。
这是XML
<testSettings>
<assets>
<asset>
<name>landing 1</name>
<externalID>/landing1.html</externalID>
<baseCR>0.01</baseCR>
</asset>
<asset>
<name>landing 2</name>
<externalID>/landing2.html</externalID>
<baseCR>0.02</baseCR>
</asset>
<asset>
<name>landing 3</name>
<externalID>/landing3.html</externalID>
<baseCR>0.03</baseCR>
</asset>
</assets>
</testSettings>
我想做的是根据externalID节点的内容返回baseCR值。如果有人能帮助我,我将非常感激,它开始变得令人沮丧。
例如,如果资产节点中的兄弟值为'/landing .html', xpath将返回0.1,如果兄弟值节点为'/landing .html',则返回0.3
以下是我到目前为止的一些不成功的尝试:
print_r($this->VXML->xpath("//assets/asset/baseCR[../externalID='/landing2.html']"));
print_r($this->VXML->xpath('//assets/asset[externalID/text() = "/landing2.html"]/baseCR/text()'));
print_r($this->VXML->xpath('//assets/asset/baseCR[../text()="landing 2"]'));
提前感谢,
詹姆斯使用//assets/asset[externalID = '/landing1.html']/baseCR