Xpath找出具有任何文本的元素

时间:2014-07-30 18:12:00

标签: xpath

我可以在任何标签中找到文本(不确定是哪一个)。我们以下面的HTML代码段为例:

<div .....>
  <div ......>
    <div ......>
       <div ......>

以上其中一个有文字,但不确定哪一个有文字。我们来看两个例子:

在这里,div 3有文字:

<div .....>
  <div ......>
    <div ......>Hello
       <div ......>

在这里,div 2有文字:

<div .....>
  <div ......>Hi
    <div ......>
       <div ......>

我想获取包含任何文本的div的元素,无论它是什么。我们可以写xpath来获取一个有任何文本的元素吗?

3 个答案:

答案 0 :(得分:5)

您可以让所有<div>拥有直接子非空文本节点,如下所示:

//div[normalize-space(text())]

答案 1 :(得分:0)

如果您不希望带有空白文本的元素,您的选择器应该像这样

//div[. !='']

此处,.指向父级,!=''只是忽略带有空白文本的元素。

答案 2 :(得分:0)

,对于任何元素,您都可以使用:

<div .....>
  <table .....>
    <tbody.....>
      <tr.....>
        <td.....>
          <span .....>Some text
            <div .....>

//*[normalize-space(text())]