XPATH - 在没有子项的节点中选择文本

时间:2016-07-08 19:35:29

标签: xml xpath

我是xpath的新手,希望能得到一些指导。我有以下XML:

<dd class="conten1">
    <li class="">
      <b> Some text here </b>
      <b> another text here </b>
      <span class="date-range">2014 – Present</span>
    </li>
</dd>

我运行了以下xpath:

.//dd[contains(@class, 'conten1')]/li

然后它返回:

  

有些文字在这里另一篇文字2014年至今

如何删除“span”部分并仅获取

  

这里的一些文字是另一个文字

我跑了

substring-before(.//dd[contains(@class, 'conten1')]/li,'201') 

但这并不理想,因为一些主菜不包含那个跨度部分因此根本不会被检索。

我想要抓住的只是“这里的一些文字另一个文字”部分。

非常希望得到一些帮助,并提前感谢你。

1 个答案:

答案 0 :(得分:2)

如果只需要b个节点,那么XPath可能看起来像

//dd[contains(@class, 'conten1')]/li/b

如果您需要除span之外的所有节点,则XPath可能看起来像

//dd[contains(@class, 'conten1')]/li/*[name(.)!='span']