2

很高兴成为 StackOverflow 的一员,在这里潜伏了很长时间。

我需要解析两个标签之间的文本,到目前为止我找到了一个很棒的工具,叫做Xidel

我需要在两者之间解析文本

<div class="description">
Text. <tag>Also tags.</tag> More text.
</div>

但是,所述文本中可以包含 HTML 标签,我希望它们以原始格式打印出来。所以使用如下命令:

xidel --xquery '//div[@class="description"]' file.html

得到我:

Text. Also tags. More text.

我需要它保持原样,所以:

Text. <tag>Also tags.</tag> More text.

我怎样才能做到这一点?

问候, R

4

2 回答 2

2

Xidel 可以通过多种方式完成,这就是我非常喜欢它的原因。

HTML模板:

xidel -s file.html -e "<div class='description'>{inner-html()}</div>"

XPath:

xidel -s file.html -e "//div[@class='description']/inner-html()"

CSS:

xidel -s file.html -e "inner-html(css('div.description'))"

顺便说一句,在 Linux 上:将双引号换成单引号,反之亦然。

于 2017-11-06T18:23:27.093 回答
0

--output-format=xml您可以通过添加选项来显示标签。

xidel --xquery '//div[@class="description"]' --output-format=xml file.html 
于 2020-10-30T01:52:28.913 回答