使用XPATH选择每隔一个节点

12

给定任意数量的节点进行选择:

<root>
  <foo>1</foo>
  <foo>2</foo>
  <foo>3</foo>
  <foo>4</foo>
  <!-- ... -->
<root>

如何选择每隔一个的foo,以便获得foo [1],foo [3],...?

2个回答

23

尝试一下

/root/foo[position() mod 2 = 1]

不知道它是否能正常工作,可能需要0。我忘记位置是从0还是1开始的。


你可能更有可能找到正确的答案。我正在参考 http://www.w3schools.com/xpath/xpath_operators.asp,并尝试理解它。如果你找到了正确的答案,请告诉我们! - Alex C

0

position()返回一个数字,表示一个元素相对于其他子元素的位置。 mod函数返回除法的余数: 5 mod 2 = 1; 6 mod 2 = 0; 9 mod 2 = 1; 10 mod 2 = 0;

另请参阅: https://en.wiktionary.org/wiki/modulo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接