0

我有一个如下所示的 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 脚本检索环境、控制台、虚拟主机、集群、节点

顺便说一句,我能够使用 xmllint 读取节点属性,它工作正常,目前将节点名硬编码到它。

4

1 回答 1

1

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
于 2016-04-29T23:08:01.493 回答