輸入 XML 看起來像幾個塊:
<Parties>
<Party compid="CUST1" side="1">
<Connections>
<SocketConnection listenport="9029" />
</Connections>
</Party>
</Parties>
我的目標是向每個客戶提取他的特定引數,例如:compid;listenport
現在我可以讓所有客戶使用
xmlstarlet fo -D config.xml | xmlstarlet select -T -t -m '//Parties/Party' -v '@compid' -nl
下一步是讓每個客戶回圈獲取他的監聽埠,但是
xmlstarlet fo -D config.xml | xmlstarlet select -T -t -m '//Parties/Party[@compid="CUST1"]' -v 'Connections/SocketConnection/@listenport'
或任何其他嘗試不回傳任何內容。我在過濾時遺漏了什么[@value=string]嗎?
提前致謝!
uj5u.com熱心網友回復:
用你的例子和xmlstarlet:
xmlstarlet select --text --template --match '//Parties/Party' --value-of \
'concat(@compid,";",Connections/SocketConnection/@listenport)' -n config.xml
輸出:
CUST1;9029
看: xmlstarlet select --help
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/368117.html
標籤:xml 猛击 路径 xmlstarlet
上一篇:在解決方案的專案之間共享相同的構建輸出檔案夾是一種不好的做法嗎?
下一篇:獲取父母、孩子和他們的孩子的文本
