【问题标题】:xpath with variable symbol. how do this?带有变量符号的 xpath。这是怎么做的?
【发布时间】:2019-04-22 19:29:34
【问题描述】:

我有 HTML 代码。

<div _ngcontent-c30="" class="message__main"><p _ngcontent-c30="">Куплю</p><ul _ngcontent-c30="" class="message__conditions  list  list--inline"><!----><li _ngcontent-c30="" class="list__item ng-star-inserted"><p _ngcontent-c30="" class="list__key">Кол-во:</p><p _ngcontent-c30="" class="list__value">1 10³ м.</p></li><li _ngcontent-c30="" class="list__item"><span _ngcontent-c30="" class="point"></span></li><!----><li _ngcontent-c30="" class="list__item ng-star-inserted"><p _ngcontent-c30="" class="list__key">Цена за ед.:</p><p _ngcontent-c30="" class="list__value">1,00 ₽</p></li><li _ngcontent-c30="" class="list__item"><span _ngcontent-c30="" class="point"></span></li><li _ngcontent-c30="" class="list__item"><p _ngcontent-c30="" class="list__key">Сумма:</p><p _ngcontent-c30="" class="list__value">1,00 ₽</p></li></ul></div>

我需要检查显示的数字是否正确(带有小数部分)。

我认为两次联系定位器是错误的,期望它一次正确。我想做类似contains(.,"^123(.|,)123$")

所以有可能吗? 如果不。用其他方法怎么做

【问题讨论】:

  • 您能否分享源代码 (HTML/XML) 示例以及当前和所需的输出?

标签: javascript html xpath css-selectors


【解决方案1】:

在 XPath 2.0 中你可以这样做

matches(., "^123(.|,)123$")

在 XPath 1.0 中你可以尝试

translate(., ',', '.') = "123.123"

在 SO 问题中,请始终说明您使用的是哪个 XPath 版本,因为 1.0、2.0 和 3.1 都是常用的。

【讨论】:

  • 怎么用这种方式 "//tag[@class="class" and matches(., "^123(.|,)123$")]? 不行在 Chrome 中
  • Chrome中内置的XPath处理器是XPath 1.0,所以你不能使用我的2.0方案(除非你安装了第三方处理器如Saxon-JS)。
  • 好的。也许你可以用 JavaScript 编写它。请。像这样document.FindElements().matchMyElement() ?
【解决方案2】:

搜索号码11,27 ind "div.message__main"

在 JavaScript 中:

document.querySelector("div.message__main").innerHTML.match(/11(.|,)27/);

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多