此选择器foo > [baz=3] ~ bar
等效于//foo/[@baz="3"]/following-sibling::bar
xpath
此选择器foo > :nth-child(2n+1)
等效于//foo/[position() mod 2=1]
xpath
使用此结构:
<foo>
<bar baz="1">one</bar>
<bar baz="2">two</bar>
<bar baz="3">tree</bar>
<bar baz="4">four</bar>
<bar baz="5">five</bar>
<bar baz="6">six</bar>
<bar baz="7">seven</bar>
<bar baz="8">eight</bar>
<bar baz="9">nine</bar>
<bar baz="10">ten</bar>
</foo>
与//foo/[@baz="3"]/following-sibling::bar
匹配/返回:
<bar baz="4">four</bar>
<bar baz="5">five</bar>
<bar baz="6">six</bar>
<bar baz="7">seven</bar>
<bar baz="8">eight</bar>
<bar baz="9">nine</bar>
<bar baz="10">ten</bar>
与//foo/[position() mod 2=1]
匹配/返回:
<bar baz="1">one</bar>
<bar baz="3">tree</bar>
<bar baz="5">five</bar>
<bar baz="7">seven</bar>
<bar baz="9">nine</bar>
但是,当结合following-sibling::
和position()
时,position()
计数元素由following-sibling::
而不是由父元素中的所有子元素组成(例如:<foo>
标签) ,我想在Xpath中这样做:
foo > [bar=3]:nth-child(2n+1)
但是这个//foo/[@baz="3"]/following-sibling::[position() mod 2=1]
不起作用(因为位置不从第一个子元素算起)
我该怎么做?
注意::我正在创建CSS到Xpath的转换器。