html - 使用 Xpath 提取 html 标签的全部内容

标签 html xpath

我有一组 html 页面(我对其没有任何控制),需要将 li 标记的完整内容提取为单个文本 block ,包括空格和 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() 获取所有文本和标签,但不是作为一个 block 。

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

最佳答案

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

读取 HTML 源代码并手动解析它。

关于html - 使用 Xpath 提取 html 标签的全部内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158864/

相关文章:

html - 如何编写向后兼容的 HTML5?

css - 移动网站上的 Html Css 页脚

html - 需要帮助创建 slated 或 angled div CSS/HTML

selenium - 元素无法点击 - 但它实际上点击

javascript - 将属性插入 XSLT 工作表内的 javascript 时出现问题

xml - 匹配具有特定祖先Xpath Xslt的节点

javascript - HTML bootstrap 文本框对齐

html - div 上的水平滚动条具有动态内容和隐藏的 overflow-y

xml - XPath - 复合谓词 + 测试值是否不以某物开头

c# - 如何借助 html 敏捷包从 html 文件中提取最内层的表格?