相关:
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 '/' -
要么
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