如何从命令行打印XML?

相关:如何在(unix)shell脚本中漂亮地打印JSON

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

基本上,我希望它能改变以下内容:

<根&gt&书信电报;foo a=“b”>洛雷姆&lt/foo&gt&书信电报;bar value=“ipsum”/&gt&lt/根>

。。。变成这样:

<根>
<foo a=“b”>洛雷姆&lt/foo>
<bar value=“ipsum”/>
&lt/根>

xmllint

此实用程序附带了libxml2 utils

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
xmllint——格式-

Perl的XML::Twig

此命令随XML::Twig perl模块一起提供,有时是XMLTwig工具package:

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
xml_pp

xmlstarlet

此命令随xmlstarlet一起提供:

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
xmlstarlet格式--缩进选项卡

整洁

检查整齐的包装:

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
tidy-xml-i-

Python

Python的xml.dom.minidom可以格式化xml(也适用于旧式Python 2):

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
python-c的导入系统;导入xml.dom.minidom;s=sys.stdin.read();打印(xml.dom.minidom.parseString.toprettyxml())'

saxon lint

您需要saxon lint

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
saxon lint--indent--xpath'/'-

撒克逊河

你需要撒克逊人他

echo'<根&gt&书信电报;foo a="b&quot&燃气轮机;洛雷姆&lt/foo&gt&书信电报;条形图值=”;ipsum“/&燃气轮机&lt/根>'|
java-cp/usr/share/java/saxon/saxon9he.jar net.sf.saxon.Query\
-s:--qs:/'!缩进=是'

发表评论