相关:如何在(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>
您还可以使用tidy,它可能需要首先安装(例如在Ubuntu:sudoapt-get install tidy
)。
为此,您可以发出如下内容:
tidy -xml -i your-file.xml > output.xml
注意:有许多额外的可读性标志,但是换行行为对解开tangle来说有点烦人(http://tidy.sourceforge.net/docs/quickref.html)。
xmllint--格式化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
小天鹅
apt-cyg安装libxml2
MacOS
要使用Homebrew在MacOS上安装此功能,只需执行以下操作:brew install libxml2
吉特
如果需要代码,也可以在Git上获得:Git clone Git:/Git.gnome.org/libxml2
libxml2-utils
此实用工具随libxml2-utils
:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
xmllint --format -
Perl的xml::twig
此命令随xml::twig perl模块一起提供,有时是xml-twig-tools
包:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
xml_pp
XMLStarlet
此命令随XMLStarlet
一起提供:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
xmlstarlet format --indent-tab
整洁
检查tidy
包:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
tidy -xml -i -
巨蟒
Python的XML.dom.minidom
可以格式化XML(python2和python3):
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())'
saxon-lint
您需要saxon-lint
:
echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
saxon-lint --indent --xpath '/' -
Saxon-He
您需要saxon-he
:
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'
问题内容: 我有一个带有JSON元素序列的文件: 是否有一个Shell脚本来格式化JSON以以可读形式显示文件内容? 我看过这篇文章,我认为这是一个很好的起点! 我的想法是迭代文件中的行,然后: 还有其他想法吗? 问题答案: 将文件中的结果通过管道传输到python json工具2.6及更高版本
当在下面运行时,将打开代码提示符,并显示java版本信息。我想打印java版本信息。请帮帮我
例子 $ gcc -### foo.c Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgvers
问题内容: 在Unix上,我可以使用\r(回车\b键)或(退格键)覆盖Shell中的当前行(在已经可见的文本上打印)。 我可以通过Python脚本在Windows命令行中实现相同的效果吗? 我尝试了curses模块,但Windows上似乎不可用。 问题答案: 是:
Selenese 有一个简单的命令可以在测试时打印输出文本。当测试在运行时,在控制台中打印显示测试中的信息,这个功能往往是非常有用的。这些信息可以用来提供测试上下文的结果报告,当你在测试中发现问题时,这个结果报告经常用来报告测试页面时发现的缺陷。最后,还可以使用 echo 语句打印 Selenium 变量的内容。
我正在使用DHL Shipping(XML)API请求DHL发货并自动打印响应的发货标签。 系统是这样工作的: DHL响应XML包含base64编码的pdf,其中包含: 第1页。装运标签(打印在包装上的标签上) 第2页。存档文件(需要单独打印并交给快递员) 为了分离这两个PDF,我首先解码base64,然后使用PDFBox命令行工具执行PDFSplit,最后在各自的打印机上打印各自的文档: 问题是