再次xml ..
我想从一个集合中选择一组子节点(用于分页)。
$nodes = $xml->query(//parent
/child[sex = 'male'
and position() >= 10
and position() < 21]);
如果我没有记错的话,那就是选择第10到第20个孩子的男孩。
我需要的是选择集合中的前10-20(或30-40)个男性......
确定我是一个菜鸟,并且在此之前做了这个,但周五......
ta peeps
答案 0 :(得分:26)
让位置条件对初始条件的结果节点集进行操作:
//parent/child[sex='male'][position() >= 10 and position() < 21]
答案 1 :(得分:5)
我想选择一组子节点( 用于分页目的)。
$nodes = $xml->query(//parent /child[sex = 'male' and position() >= 10 and position() < 21]);
如果我没有错,那只会 选择第10名的男孩 到了第20个孩子。
我需要的是选择第一个 集合中有10-20(或30-40)名男性......
你错误 ......
//parent/child
[sex = 'male'
and
position() >= 10
and
position() < 21
]
选择child
元素(XML文档中的任何parent
元素)的所有sex
元素,其中"male"
子元素的值为child
,且是第10个元素之一他们父母的第二个child
孩子。
可能只有少数甚至没有这样的元素。
你想要的是:
选择parent
元素(XML文档中任何sex
元素)的所有"male"
元素,其中//parent/child[sex = 'male']
子项的值为//parent/child[sex = 'male']
[position() >= 10
and
not(position() > 20
]
从上面步骤1中选择的那些中选择仅位于10到20位的那些
所以,对于第1步:
{{1}}
并添加第2步:
{{1}}