xmlstarlet count逗号分隔

时间:2012-05-09 12:00:03

标签: xmlstarlet

需要计算群集地址(服务器数量),请参阅下面的xml。谁能帮我。我尝试了很多东西,但我无法让它发挥作用。

群集地址中的服务器用逗号分隔。

<name>WeblogicCluster</name>
<multicast-address>1.1.1.1.1</multicast-address>
<cluster-messaging-mode>unicast</cluster-messaging-mode>
<cluster-address>server1.domain.com,server2.domain.com</cluster-address>
<weblogic-plugin-enabled>true</weblogic-plugin-enabled>
<frontend-host>server.domain.com</frontend-host>

在bash中我这样解决了,但是希望在xmlstarlet中做任何想法?

#!/bin/sh
address="$(xmlstarlet sel -N d=http://xmlns.oracle.com/weblogic/domain -t -v "/d:domain/d:cluster/d:cluster-address" config.xml 2>/dev/null)"
number=`echo ${address//","/" "} | wc -w`
echo $number

1 个答案:

答案 0 :(得分:0)

xml sel -N d=http://xmlns.oracle.com/weblogic/domain -t -v \
 "count(str:split(/d:domain/d:cluster/d:cluster-address, ','))" \
 config.xml