检查子节点是否为类型,并使用xpath访问它

时间:2016-01-31 17:44:18

标签: php xpath

我进行了查询并将结果存储在$ 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是否具有轻松遍历子节点的能力?

1 个答案:

答案 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中循环遍历索引059'的子元素。
  • /*[@class='thirdQuery'] :获取当前上下文元素的子元素,其中class属性值等于"thirdQuery"。这里的context元素是$id的子元素,由上一点上面的XPath位返回