我有一组html页面(通过它我没有任何控制),需要将li标记的完整内容作为包含空格的单个文本块来提取以及除li标签对以外的所有标记。我使用的HTML解析器的XPath 1.0(并且没有对这样的选择。)使用Xpath提取html标记的完整内容
输入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']
让我我想要的文字,但与开放和关闭李标签。
.//*[@class='gs-source-item']//text()
请将文本作为单独的元素(而不是单个元素)而不是内部标签。
string(.//*[@class='gs-source-item']//text())
只让我看到第一行文字。
string-join(.//*[@class='gs-source-item']//text(),"")
似乎并不是我正在使用的解析器的可接受语法,无论如何,我认为它仍然会去掉内部标签。
.//*[@class='gs-source-item']//node()
得到我所有的文本和标签,但不是作为一个单独的块。
我已经用尽想法尝试...我已经看过相关的问题,但没有找到任何帮助(除了我上面列出的想法)。
尝试'/ * * [@ class ='gs-source-item']/*' - 这会返回列表中元素的集合。 –
@tomredfern返回内部标签的内容,但不是顶级文本。 – ColeValleyGirl
抱歉,我会在下次正确阅读您的问题。 –