2016-04-29 83 views
0

我有一個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這是工作的罰款,目前硬編碼的節點名吧。

回答

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 
+0

該訣竅:) – Mowgli