xpath获取类别值“Tourism”的任何小工具,以及小工具[1]之前的任何兄弟

时间:2016-01-28 15:05:53

标签: xml xpath

我有一个表单的xml结构;

<Gadgets>              <!--This is the root node-->                          

<info>                
    <author>Yours sincerely</author>
    <email>me@yahoo.com</email>         
    <phone>+23407------</phone>
    <website>me.com</website>
</info>

<!-- I want info and any node before here selected--> 

<gadget>
    -------
</gadget>   

<gadget>
    <title>News</title>
    <link>blalblala.php</link>
    <description>contains News</description>
    <category>Tourism</category>
    <image url="image2.jpj" title="image name" link="location.jpg"/>
    <comment>link to image comments</comment>
    <enclosure url="blaaaa.jpg" length="something" type="imag"/>
</gadget>

<gadget>

使用xpath,我想选择信息(或小工具[1]之前的任何节点)和类别具有旅游值的任何小工具。目前,这就是我所拥有的:

"./*/gadget[category = 'Tourism']/following-sibling::gadget[1]"

我也尝试过这个:

"./*/gadget[category = 'Tourism' or following-sibling::gadget[1]]"

“Gadgets / * [self :: gadget and category ='Tourism'或(self :: following-sibling :: gadget)]”

没有按预期选择信息。任何指南将受到高度赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

//gadget[./category/text()='Tourism'] | //gadget[1]/preceding-sibling::*

或者,如果您只想要一个&#34;任何节点&#34;最接近第一个gadget使用

//gadget[./category/text()='Tourism'] | //gadget[1]/preceding-sibling::*[1]