shell脚本从XML文件中检索节点名称
问题描述:
我有一个XML文件,如下所示,我试图检索第一个子节点名称并将其存储在数组中,并将其用于读取属性。shell脚本从XML文件中检索节点名称
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="config.xsl"?>
<cell name="servicesPrd">
<env>Prod </env>
<console>
...
</console>
<vhosts>
....
</vhosts>
<clusters>
....
</clusters>
<nodes>
....
</nodes>
</cell>
我期待通过shell脚本
BTW,我能够读取节点检索ENV,控制台,虚拟主机,群集节点属性使用xmllint这是工作的罚款,目前硬编码的节点名吧。
答
xmlstarlet
是用于查询XML文件一般有用:
$ xmlstarlet sel -t -m '/cell/*' -v 'name()' -n your.xml
env
console
vhosts
clusters
nodes
$ xmlstarlet el your.xml
cell
cell/env
cell/console
cell/vhosts
cell/clusters
cell/nodes
该诀窍:) – Mowgli