首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用xmllint缩进html?

如何使用xmllint缩进html?
EN

Stack Overflow用户
提问于 2012-02-09 00:43:38
回答 4查看 8.3K关注 0票数 3

我正在输出的html,这是所有的压缩在一起,并希望将其转换为有适当的缩进。我一直在尝试使用xmllint来解决这个问题,但是没有使用joy。例如,当它在file.html中时:

代码语言:javascript
复制
<table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table>

我得到了:

代码语言:javascript
复制
$ xmllint --format file.html
file.html:2: parser error : Extra content at the end of the document
<table><tr><td>Bar</td></tr></table>
^
<<< exit status [1] >>>

但是当file.html只包含这两行中的任何一行时,它都可以正常工作(删除第二行):

代码语言:javascript
复制
$ xmllint --format file.html
<?xml version="1.0"?>
<table>
  <tr>
    <td>
      <b>Foo</b>
    </td>
  </tr>
</table>

当我引入--html选项时,它更有可能运行时没有错误,但随后就不缩进了。

有什么建议吗?有没有其他(*nix)工具可以用来做这件事?谢谢..。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-13 23:15:15

我认为这是因为您提供的HTML没有根标记,因此使它成为无效的XML。

尝试添加body标记,然后对其再次运行xmllint。

代码语言:javascript
复制
<body><table><tr><td><b>Foo</b></td></tr></table>
<table><tr><td>Bar</td></tr></table></body>
票数 2
EN

Stack Overflow用户

发布于 2013-01-03 23:15:55

正如用户4M01所建议的:在命令行上,在管道后面附加一个对HTML tidy的调用。

来自xmllint的HTML输出将被修复;tidy将包装一些合理的...围绕你的html片段。

代码语言:javascript
复制
xmllint --xpath "//tr[6]/td[7]" --html - | tidy -q
票数 4
EN

Stack Overflow用户

发布于 2013-04-05 20:20:03

tidy -i设置indent: auto配置值。如果我将它设置为yes而不是auto,我会得到更好的缩进样式:

代码语言:javascript
复制
tidy --indent yes 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9197660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档