我想使用bash過濾example-below xml。從xml獲取屬性名稱
問題: 如果子節點att =「t」的屬性存在,則應該打印屬性名稱。
輸入:
<?xml version="1.0" encoding="UTF-8"?>
<general>
<node1>
<subnode att1="a" att2="t" name="test"> </subnode>
<subnode att1="a" name="test2"> </subnode>
<subnode att1="a" name="test3"> </subnode>
<subnode att1="a" att2="t" name="test4"> </subnode>
</node1>
</general>
輸出:
test
test4
我試圖grep和xmllint,但沒有成功。
我的 「臨時」 的解決方案是:
xmllint --xpath 'string(//general/node1/subnode[@att2="t"]/@name)' file.xml
但該命令只打印第一次出現 - 測試。
不工作,有時打印其他屬性。 – profiler
我需要非工作案例的XML內容,以便我可以修復。請更新您的問題更少的情況下。另外,我的代碼假設你想匹配包含att [any_number] =「t」的行。不是嗎?你只需要匹配att2 =「t」? – 2016-07-07 12:06:59