用于标识未标记文本的XPath查询

时间:2010-11-03 01:14:36

标签: xpath

考虑这个HTML:

<html>
  <head>
  </head>
<body>
  <table>
    <tr>
      <td>
        <h1>title</h1>
        <h3>item 1</h3>
          text details for item 1
        <h3>item 2</h3>
          text details for item 2
        <h3>item 3</h3>
          text details for item 3
      </td>
    </tr>
  </table>
</body>
</html>

我对XPath并不十分熟悉,但在我看来,没有任何符号可以单独匹配“文本细节”部分。你能证实吗?

2 个答案:

答案 0 :(得分:2)

使用

/html/body/table/tr/td/h3/following-sibling::text()[1]

这意味着:获取每个h3元素的第一个以下兄弟文本节点,该元素是每个tr元素的子元素,该元素是每个table元素的子元素。每个body元素,它是html顶级元素的子元素。

或者,如果您只知道所需文本节点是文档中所有h3元素的紧随其后的兄弟节点,那么tis XPath表达式会选择它们:

//h3/following-sibling::text()[1]

答案 1 :(得分:1)

在Xml / Xpath的世界中

Text - 是一种元素节点。

所以考虑你的例子

TD有7个子节点

TD.getChild(3)应该返回“项目1的文本详细信息”值。

在XPath中 $ x // table / tr / td / text()[1]