【问题标题】:Javascript, XPath, select next text based on search textJavascript,XPath,根据搜索文本选择下一个文本
【发布时间】:2018-12-06 07:47:09
【问题描述】:

我需要通过文本包含(内部文本)使用 XPath 搜索节点

<div class="row"> // 1-0-4
    <div class="col-xs-4">
        <label for="FactoryLeadTime">Factory Lead Time:</label>
    </div>
    <div class="col-xs-8">
        4 Weeks
    </div>
</div>

我的 JS 代码

var xpath = 'label[text()[normalize-space(.)="Factory Lead Time:"]]'; 
//var xpath = "//label[a[contains(., 'Factory Lead Time:')]]/text()";
var res = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);

console.log(res);

由于控制台显示,我不确定搜索是否成功

XPathResultinvalidIteratorState: falseresultType: 4__proto__: XPathResultPrototype { iterateNext: iterateNext(), snapshotItem: snapshotItem(), ANY_TYPE: 0, … } tmp.js:252:1

事实上,我正在尝试根据之前的文本“工厂交货时间:”获得“4 周”的结果

有没有一种巧妙的方法可以用 XPath 做到这一点?

提前致谢

【问题讨论】:

    标签: javascript xpath


    【解决方案1】:

    尝试在 XPath 下获取所需的 poutput:

    //div[label="Factory Lead Time:"]/following-sibling::div/text()
    

    【讨论】:

      【解决方案2】:

      试试这个,

      <label for="FactoryLeadTime">Factory Lead Time:</label>
      

      Xpath : //label[contains(text(),'Factory Lead Time:')]

      <div class="col-xs-8">
               4 Weeks
           </div>
      

      Xpath: //div[normalize-space()='4 Weeks']

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-29
        • 2023-03-15
        • 1970-01-01
        • 2017-02-24
        • 1970-01-01
        • 1970-01-01
        • 2014-01-12
        • 1970-01-01
        相关资源
        最近更新 更多