【问题标题】:XPath: next child of parentXPath:父母的下一个孩子
【发布时间】:2023-03-18 00:22:02
【问题描述】:

我正在尝试在 php 中使用 Xpath 获取父级的子级。

HTML:

<div class="Grid Grid--multiCol Grid--2to3 Grid--gutterH20px">
    <div class="Grid-cell Grid-cell--1">
        <span class="u-colorVehicleAttrs">Body:</span>
    </div>
    <div class="Grid-cell Grid-cell--2">Sport Utility Vehicle (SUV)/Multi Purpose Vehicle (MPV)</div>
</div>

PHP:

...
$bodytype = $my_xpath->query("//span[text()='Body:']/following-sibling::div[1]")[0]->nodeValue;
echo $bodytype;

那么,我在寻找什么序列:

  1. 查找包含文本“Body:”的跨度
  2. 获取当前节点父元素旁边的 div 文本 --> echo 的结果应该是“Sport Utility Vehicle (SUV)/Multi Purpose Vehicle (MPV)”

P.S.:类名不是唯一的,并且用于许多其他行,因此不能按属性访问。

希望问题得到清楚的解释 :) 谢谢。

【问题讨论】:

  • 要使用您的方法解决此问题,只需上一层:"//span[text()='Body:']/../following-sibling::div[1]"
  • 谢谢你,代码狗头人!它有效

标签: php html xpath


【解决方案1】:

获取当前节点父元素旁边的div文本

但是,您的 xpath 会尝试获取 当前节点的以下兄弟姐妹。

所以,修复它,xpath 变为://span[text()="Body:"]/../following-sibling::div[1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    相关资源
    最近更新 更多