使用Xpath提取html标记的完整内容

时间:2017-05-24 12:48:08

标签: html xpath

我有一组html页面(我没有任何控件),需要将li标签的完整内容提取为单个文本块,包括空格和除li标签对之外的所有标记。我正在使用HTML Xpath解析器1.0(并且没有选择。)

输入html看起来像

<ul class="gs-source-list">
<li id="s1" class="gs-source-item">
[S1] First text here
<br/>
<br/>
Label:
<br/>
<br/>
<span style="display:inline-block; margin-left:35px;">
More text
<br/>
More text
<br/>
</span>
<br/>
<br/>
Note: 
<br/>
<br/>
<span style="display:inline-block; margin-left:35px;">GRO reference is Note text</span>
</li>
</ul>

   

.//*[@class='gs-source-item']为我提供了我想要的文字,但是有开启和关闭的li标签。

.//*[@class='gs-source-item']//text()将文本作为单独的元素(而不是单个元素),而不是内部标记。

string(.//*[@class='gs-source-item']//text())只获取第一行文字。

对于我正在使用的解析器,

string-join(.//*[@class='gs-source-item']//text(),"")似乎不是可接受的语法,无论如何我认为它仍然会删除内部标记。

.//*[@class='gs-source-item']//node()获取所有文字和标签,但不是一个块。

我已经没有想法尝试......我已经查看了相关问题,但没有找到任何帮助(除了我上面列出的想法)。

1 个答案:

答案 0 :(得分:0)

没有XPath函数可以将HTML标记作为文本返回。如果您是通过编程语言访问的,则不提及,但我会使用代码来执行此操作。

读入HTML源代码并手动解析。