【问题标题】:xpath replace not working?xpath替换不起作用?
【发布时间】:2018-04-27 14:14:00
【问题描述】:

有了这个 HTML

<tr>
                <td class="listOddRow"><a href="/bnc/page?BPPC=BPPC17111409443230443484&amp;aliasDispatcher=bankingAccountHistory&amp;key=1027510022703&amp;cAliasDispatcher=bankingStatement&amp;kookToken=wHwy83w6cX" class="listLinks" onclick="setValidExitDocument();">Chequing</a>&nbsp;</td>
                <td class="listOddRow">00-227-03</td>
                <td class="listOddRow" nowrap="">0275-1</td>
                <td class="listOddRow" align="right" nowrap="">$&nbsp;28.08</td>


            </tr>

任何人都知道为什么会这样

//td[contains(text(),"00-227-03")]/parent::tr//a

但不是这个?我想在调用contains()之前从text()中删除破折号

//td[contains(replace(text(), "-", ""),"0022703")]/parent::tr//a

【问题讨论】:

  • 它是否有效://td[contains(translate(text(), "-", ""),"0022703")]/parent::tr//a ?
  • @splash58 确实如此!感谢您的帮助,请解释一下 translate 在这里的作用?我不知道那个功能
  • @ibiza 为什么你需要问这个问题?您无权访问 XPath 的任何参考信息吗?
  • @MichaelKay 为什么你需要发表评论?别看我的问题,你就没有更好的事情吗?
  • 我发表评论的目的有两个:首先是帮助您作为开发人员提高工作效率,其次是让 StackOverflow 成为一个更好的地方,让访问该网站的人找到更优质的问题和答案。

标签: html xml xslt xpath


【解决方案1】:

至少在 xpath 1.0 中没有函数 replace,但有 translate 以相同的方式工作 - 它用第三个中的相应字符替换第二个字符串中的第一个字符串字符。所以,你可以使用 Xpath

//td[contains(translate(text(), "-", ""),"0022703")]/parent::tr//a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 2018-03-15
    • 2015-02-21
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多