Xpath - 基于node()的匹配包含()内容

时间:2014-10-06 07:43:01

标签: ruby xpath

我有以下HTML结构(有许多块使用相同的架构):

<span id="mySpan">
  <i>
    Price
    <b>
       3 900
       <small>€</small>
    </b>
  </i>
</span>

现在,我想使用Xpath获取<b>的内容,我试过这样:

//span[@id="mySpan"]/i/node()[1][contains(text(),"Price")]

哪个匹配任何东西。如何使用node()[1]文本作为锚点来匹配?

1 个答案:

答案 0 :(得分:0)

关于您尝试的Xpath,而不是返回文本节点子text(),只需使用.

//span[@id="mySpan"]/i/node()[1][contains(.,"Price")]

为了最终目标,我建议使用XPath:

//span[@id="mySpan"]/i[contains(.,"Price")]/b

或者如果您想要专门匹配<i>中的第一个节点

//span[@id="mySpan"]/i[contains(node(),"Price")]/b