我进行了查询并将结果存储在$ id变量中,如下所示:
$id = $exampleXPath->query("//li[@class='firstquery']");
只有当这个元素是$ id的子元素时才从第三类的元素中提取数据。有许多thirdQuery类,所以它需要链接到$ counter指定的$ id。像这样:
<class="fisrtQuery">
- <class="childClass">
-> <class="childClass2">
-- <class="grandsonClass">
-- <class="grandsonClass">
--> <class="secondQuery">
--- <class="sfd">
--- <class="sfd">
--- <class="thirdQuery">
for ($counter=0 ; $counter<60 ; $counter++){
if($id->item($counter)->hasChildNodeOfClassThirdQuery){
echo nodeOfClassThirdQuery->item(0)->nodeValue;
}
}
php是否具有轻松遍历子节点的能力?
答案 0 :(得分:1)
如果我正确理解你的假设代码,它可以大致翻译成这样的东西:
$id = $exampleXPath->query("//li[@class='firstquery']");
$xpath = "./*[position() < 61]/*[@class='thirdQuery']";
$result = $exampleXPath->query($xpath, $id);
XPath的解释:
./*[position() < 61]
:获取当前上下文元素$id
的子元素,索引小于61
。 XPath索引从1
开始,因此大约等于'在PHP中循环遍历索引0
到59
'的子元素。/*[@class='thirdQuery']
:获取当前上下文元素的子元素,其中class
属性值等于"thirdQuery"
。这里的context元素是$id
的子元素,由上一点上面的XPath位返回