【问题标题】:Xpath exclude child elementXpath 排除子元素
【发布时间】:2019-07-22 22:44:08
【问题描述】:

我正在尝试使用 DOM Xpath 从购物网站获取特定产品的价格。

我正在使用的代码:

$scriptRow = $scriptDOMXPath->query('//p[@class="ps-sell-price"]/*[not(span[@class="visuallyhidden price-text"])]');

但是,无论如何,我仍然得到了跨度。我怎样才能摆脱它?

现在我得到价格:9999 RON。我需要删除“价格:”

span.visuallyhidden 是“价格:”的类

编辑显示示例:

<p class="ps-sell-price"> 
<span class="visuallyhidden price-text">Price:</span> 
<span >199,99 RON</span> 
<meta itemprop="price" content="199.988068" /> 
<meta itemprop="priceCurrency" content="RON" /> 
</p>

谢谢你, 克里斯蒂安

【问题讨论】:

  • 如果没有您正在解析的 html 样本,我不确定我们能提供什么帮助。
  • 刚刚编辑,谢谢:)
  • 我真的认为你最好在这里只获取 标签?他们看起来很完美

标签: php dom xpath


【解决方案1】:

似乎以下方法可以解决问题:

//p[@class="ps-sell-price"]/*[not(self::span[@class="visuallyhidden price-text"])]

我必须仔细阅读文档,因为我不明白 self:: 在 XPath 中的作用。

谢谢你, 克里斯蒂安

【讨论】:

  • 似乎它为给定的查询运算符设置了上下文,否则如果没有它,它可能会查看子元素
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2013-04-13
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
相关资源
最近更新 更多