根据child的子值选择元素



我正试图根据这个问题在Whitebeam的测试台上找出这个问题,但我就是无法让它工作。我试着选择"宠物"具有"描述"的元素。带着"大狗"的孩子价值。

这是我最好的选择,但它不起作用,我不明白为什么:

./pet[./description = 'Large dog!'] 

如果你不想打开上面的链接,这里是测试平台的XML。

<documentRoot>
<!-- Test data -->
<?value="2"?>
<parent name="data" >
<child id="1"  name="alpha" >Some Text</child>
<child id="2"  name="beta" >
<grandchild id="2.1"  name="beta-alpha" ></grandchild>
<grandchild id="2.2"  name="beta-beta" ></grandchild>
</child>
<pet name="tigger"  type="cat" >
<data>
<birthday month="sept"  day="19" ></birthday>
<food name="Acme Cat Food" ></food>
</data>
</pet>
<pet name="Fido"  type="dog" >
<description>
Large dog!
</description>
<data>
<birthday month="feb"  day="3" ></birthday>
<food name="Acme Dog Food" ></food>
</data>
</pet>
<rogue name="is this real?" >
<data>
Hates dogs!
</data>
</rogue>
<child id="3"  name="gamma"  mark="yes" >
<!-- A comment -->
<description>
Likes all animals - especially dogs!
</description>
<grandchild id="3.1"  name="gamma-alpha" >
<[CDATA[ Some non-parsable character data ]]>
</grandchild>
<grandchild id="3.2"  name="gamma-beta" ></grandchild>
</child>
</parent>
</documentRoot>

任何帮助,甚至只是指给我正确的方向,我都非常感激

空格和轴误解阻碍了您的尝试。使用normalize-space()descendant-or-self::轴(//)来消除问题…

这个XPath

//pet[normalize-space(description) = 'Large dog!'] 

将选择description子元素的空格规范化字符串值为'Large dog!'的所有pet元素。

相关内容

  • 没有找到相关文章

最新更新