Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath查找包含任何文本的元素_Xpath - Fatal编程技术网

Xpath查找包含任何文本的元素

Xpath查找包含任何文本的元素,xpath,Xpath,我遇到过这样的情况:我可以在任何标签中包含文本(不确定是哪一个)。让我们以以下HTML代码段为例: <div .....> <div ......> <div ......> <div ......> 上面其中一个有文本,但不确定哪个有文本。让我们举两个例子: 其中,div 3包含以下文本: <div .....> <div ......> <div ......>He

我遇到过这样的情况:我可以在任何标签中包含文本(不确定是哪一个)。让我们以以下HTML代码段为例:

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

上面其中一个有文本,但不确定哪个有文本。让我们举两个例子:

其中,div 3包含以下文本:

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

你好
其中,div 2包含以下文本:

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

你好

我想为包含任何文本的div获取元素,不管它是什么。我们可以编写xpath来获取包含任何文本的元素吗?

如果不希望元素包含空白文本,那么选择器应该如下所示

//div[. !='']
在这里,
指向父级和
!=''
只需忽略带有空白文本的元素。

您可以获得所有具有直接子级非空文本节点的
,如下所示:

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

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

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

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

一些文本
//*[规范化空间(text())]