我使用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值。如果有人能帮助我,我会感到非常感激,它开始变得令人沮丧。
例如,如果资产节点中的兄弟值为&#39; /landing1.html',则xpath将返回0.1;或者,如果兄弟值节点是&#39; /landing3.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"]'));
非常感谢,
詹姆斯
答案 0 :(得分:1)
使用//assets/asset[externalID = '/landing1.html']/baseCR
。