Xquery在html中提取文本

Tec*_*rat 3 xpath xquery

我正在从html文档中提取文本并存储在数据库中.我正在使用webharvest工具来提取内容.但是我有点卡在某一点上.在webharvest内部,我使用XQuery表达式来提取数据.我正在解析的html文档如下:

              <td><a name="hw">HELLOWORLD</a>Hello world</td>
Run Code Online (Sandbox Code Playgroud)

我需要从上面的html脚本中提取"Hello world"文本.

我试过以这种方式提取文本:

     $hw :=data($item//a[@name='hw']/text())
Run Code Online (Sandbox Code Playgroud)

然而,我总是得到的是"HELLOWORLD"而不是"Hello world".

有没有办法提取"Hello World".请帮忙.

如果我想这样做怎么办:

<td>
 <a name="hw1">HELLOWORLD1</a>Hello world1
 <a name="hw2">HELLOWORLD2</a>Hello world2
 <a name="hw3">HELLOWORLD3</a>Hello world3
</td>
Run Code Online (Sandbox Code Playgroud)

我想提取hwe2和hw3之间的文本Hello world 2.我不想使用text()[3],但有一些方法可以在/ [[name ='hw2']和/ [[name ='hw3']之间提取文本.

Ode*_*ded 6

您的xpath正在选择a节点的文本,而不是节点的文本td:

$item//a[@name='hw']/text()
Run Code Online (Sandbox Code Playgroud)

把它改成这个:

$item[a/@name='hw']/text()
Run Code Online (Sandbox Code Playgroud)

更新(以下评论和更新问题):

此xpath选择$item具有a包含name属性设置为的标记的第二个文本节点hw:

$item[a/@name='hw']//text()[2]
Run Code Online (Sandbox Code Playgroud)