如何从命令行打印XML?
相关的: 是否有(unix)shell脚本以人类可读的形式格式化XML 基本上,我希望它能改变以下内容:如何从命令行打印XML?,xml,unix,command-line,perl,xidel,Xml,Unix,Command Line,Perl,Xidel,相关的: 是否有(unix)shell脚本以人类可读的形式格式化XML 基本上,我希望它能改变以下内容: <root><foo a="b">lorem</foo><bar value="ipsum" /></root> $ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --f
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
lorem
。。。变成这样:
<root>
<foo a="b">lorem</foo>
<bar value="ipsum" />
</root>
洛勒姆
xmllint
此实用程序附带:
xmlstarlet
此命令附带:
Python
Python可以格式化XML(也适用于旧式Python 2):
撒克逊河
你需要:
echo'lorem'|
java-cp/usr/share/java/saxon/saxon9he.jar net.sf.saxon.Query\
-s:--qs:/'!缩进=是'
xmllint
此实用程序附带:
xmlstarlet
此命令附带:
Python
Python可以格式化XML(也适用于旧式Python 2):
撒克逊河
你需要:
echo'lorem'|
java-cp/usr/share/java/saxon/saxon9he.jar net.sf.saxon.Query\
-s:--qs:/'!缩进=是'
您没有提到文件,因此我假设您希望在命令行上提供XML字符串作为标准输入。在这种情况下,请执行以下操作:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
$echo'lorem'| xmllint--格式-
您没有提到文件,因此我假设您希望在命令行上提供XML字符串作为标准输入。在这种情况下,请执行以下操作:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
$echo'lorem'| xmllint--格式-
xmllint——格式化您的xmlfile.xml
是一个命令行XML工具,包含在libxml2
()中
================================================
注意:如果未安装libxml2
,则可以通过执行以下操作进行安装:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
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安装libxml2 utils
Cygwin
apt cyg安装libxml2
MacOS
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
要使用自制软件在MacOS上安装此软件,只需执行以下操作:
brew安装libxml2
Git
如果您需要以下代码,也可以在Git上获得:
git克隆git://git.gnome.org/libxml2
xmllint——格式化您的xmlfile.xml
是一个命令行XML工具,包含在libxml2
()中
================================================
注意:如果未安装libxml2
,则可以通过执行以下操作进行安装:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
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安装libxml2 utils
Cygwin
apt cyg安装libxml2
MacOS
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
要使用自制软件在MacOS上安装此软件,只需执行以下操作:
brew安装libxml2
Git
如果您需要以下代码,也可以在Git上获得:
git克隆git://git.gnome.org/libxml2
您也可以使用,这可能需要先安装(例如在Ubuntu上:sudoapt get install tidy
)
为此,您将发布如下内容:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
注意:有许多额外的可读性标志,但分词行为有点烦人()。您也可以使用,可能需要先安装(例如在Ubuntu:sudoapt get install tidy
)
为此,您将发布如下内容:
<root><foo a="b">lorem</foo><bar value="ipsum" /></root>
$ echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' | xmllint --format -
tidy -xml -i your-file.xml > output.xml
注意:有许多额外的可读性标志,但分词行为有点烦人()。:
正如Daniel Veillard所写:
我想
xmllint-o tst.xml——格式为tst.xml
应该是安全的,因为解析器会将输入完全加载到树中
在打开输出对其进行序列化之前
缩进级别由XMLLINT_Indent
环境变量控制,该变量默认为2个空格。示例如何将缩进更改为4个空格:
XMLLINT_INDENT=' ' xmllint -o out.xml --format in.xml
当XML文档被破坏时,您可能缺少使用--recover
选项。或者尝试使用具有严格XML输出的弱HTML解析器:
xmllint --html --xmlout <in.xml >out.xml
:
正如Daniel Veillard所写:
我想
xmllint-o tst.xml——格式为tst.xml
应该是安全的,因为解析器会将输入完全加载到树中
在打开输出对其进行序列化之前
缩进级别由XMLLINT_Indent
环境变量控制,该变量默认为2个空格。示例如何将缩进更改为4个空格:
XMLLINT_INDENT=' ' xmllint -o out.xml --format in.xml
当XML文档被破坏时,您可能缺少使用--recover
选项。或者尝试使用具有严格XML输出的弱HTML解析器:
xmllint --html --xmlout <in.xml >out.xml
没有在macOS/most Unix上安装任何东西。
使用tidy
cat filename.xml | tidy-xml-iq
使用cat重定向查看文件以指定xml的文件类型,并在安静输出时缩进将抑制错误输出。JSON还可以与-JSON
一起使用,而无需在macOS/most Unix上安装任何东西。
使用tidy
cat filename.xml | tidy-xml-iq
使用cat重定向查看文件以指定xml的文件类型,并在安静输出时缩进将抑制错误输出。JSON也适用于
-JSON
这让我花了很长时间才找到在我的mac电脑上工作的东西。以下是对我有效的方法:
brew install xmlformat
cat unformatted.html | xmlformat
我花了很长时间才在我的mac电脑上找到了工作的东西。以下是对我有效的方法:
brew install xmlformat
cat unformatted.html | xmlformat
编辑:
免责声明:您通常应该更喜欢安装一个成熟的工具,如xmllint
来完成这样的工作。XML/HTML可能是一个可怕的残缺不全的烂摊子。然而,在一些有效的情况下,使用现有工具比手动安装新工具更可取,而且XML的源代码是有效的(足够了)。我已经为其中一个案例编写了这个脚本,但它们很少见,所以请谨慎行事
我