我想知道为什么以下Xpath表达式的计数为2而不是3.感谢您的帮助。
的Xpath -
<xsl:value-of select="count(//x[1]/y[1])"/>
XML
<?xml version="1.0"?>
<test>
<x a="1">
<x a="2">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
</x>
<x a="1">
<x a="2">
<y>y21</y>
<y>y22</y>
</x>
</x>
<x a="1">
<y>y11</y>
<y>y12</y>
</x>
<x>
<y>y03</y>
<y>y04</y>
</x>
</test>
//count (//x[1]/y[1]) is selecting the following 2 elements.
1) <x>
<y>y31</y>
2) <x a="2">
<y>y21</y>
并且它没有选择同一级别中的以下元素之一,将计数添加为3.我想澄清一下。
<x a="1">
<y>y11</y>
or
<x>
<y>y03</y>
感谢, 马修
答案 0 :(得分:0)
//x[1]/y[1]
选择y
元素作为1个孩子或其父母的x
个元素的第一个子元素。
test
<x a="1">
<x a="2"> <!-- x is first child of its parent -->
<y>y21</y> <!-- y is first child of its parent x -->
<y>y22</y>
</x>
</x>
和第二个孩子或test
<x a="1">
<x a="2">
<x> <!-- x is first child of its parent -->
<y>y31</y> <!-- y is first child of its parent x -->
<y>y32</y>
</x>
</x>
</x>
两者都是或包含x
元素,其本身具有x
元素作为第一个孩子,y
作为第一个孩子,因此匹配。
但
<x a="1"> <!-- x is 3rd child of its parent test -->
<y>y11</y>
...
是test
<x> <!-- x is 4th child of its parent test -->
<y>y03</y>
是test
所以他们不匹配