加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从命令行打印XML?

发布时间:2020-12-16 08:21:20 所属栏目:百科 来源:网络整理
导读:相关: How to pretty-print JSON from the command line? 是否有一个(unix)shell脚本来以人类可读的形式格式化XML? 基本上,我想要它转换以下: rootfoo a="b"lorem/foobar value="ipsum" //root …变成这样的: root foo a="b"lorem/foo bar value="ipsum
相关: How to pretty-print JSON from the command line?

是否有一个(unix)shell脚本来以人类可读的形式格式化XML?

基本上,我想要它转换以下:

<root><foo a="b">lorem</foo><bar value="ipsum" /></root>

…变成这样的:

<root>
    <foo a="b">lorem</foo>
    <bar value="ipsum" />
</root>
尝试这样做:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xmllint --format -

此实用程序自带libxml2-utils

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xml_pp

这个命令自带的XML::Twig perl模块,有时是xml-twig-tools包。

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xmlstarlet format --indent-tab

此命令自带xmlstarlet

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    tidy -xml -i -

检查整洁的包

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    python -c 'import sys;import xml.dom.minidom;s=sys.stdin.read();print xml.dom.minidom.parseString(s).toprettyxml()'

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    saxon-lint --indent --xpath '/' -

检查saxon-lint

要么

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    java -cp /usr/share/java/saxon/saxon9he.jar net.sf.saxon.Query 
    -s:- -qs:/ '!indent=yes'

检查saxon-HE

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读