如何从命令行打印XML?

前端之家收集整理的这篇文章主要介绍了如何从命令行打印XML?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
相关: 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

猜你在找的XML相关文章