如何从命令行漂亮地打印XML?
相关:如何在(unix)shell脚本中漂亮地打印JSON?
是否有(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 -
检查tidy
包裹
要么
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'
检查撒克逊 - 他
xmllint --format yourxmlfile.xml
xmllint是一个命令行XML工具,包含在libxml2
(http://xmlsoft.org/)中。
================================================
注意:如果您没有安装libxml2
,则可以通过执行以下操作来安装它:
CentOS的
cd /tmp
wget ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz
tar xzf libxml2-2.8.0.tar.gz
cd libxml2-2.8.0/
./configure
make
sudo make install
cd
Ubuntu的
sudo apt-get install libxml2-utils
苹果系统
要在MacOS上用Homebrew安装它,只需要: brew install libxml2
你也可以使用tidy,它可能需要先安装(例如在Ubuntu上:sudo apt-get install tidy
)。
为此,您可以执行以下操作:
tidy -xml -i your-file.xml > output.xml
注意:有许多额外的可读性标志,但自动换行行为对于解决问题有点烦人(http://tidy.sourceforge.net/docs/quickref.html)。
链接地址: http://www.djcxy.com/p/1287.html