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


check if child node is of type and access it with xpath

>我进行了查询并将结果存储在一个$id变量中,如下所示:

$id = $exampleXPath->query("//li[@class='firstquery']");

比我从类 threeQuery 的元素中提取数据,只有当这个元素是 $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 是否具有轻松遍历子节点的强大功能?

如果我正确理解您的假设代码,它可以大致翻译成这样的东西:

$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" 。这里的上下文元素是$id的子元素,由上面的 XPath 位返回