1
所以,我有一個XPath表達式來獲得的屬性值我感興趣的:XPath:將函數應用於所有匹配?
//ElementName/@AttributeName
我想要的屬性作爲字符串的只是價值。我可以這樣做:
string(//ElementName/@AttributeName)
但這隻適用於第一個節點的功能。我想(我使用的命令行,這會打印出表達式的結果xmllint
應用string()
到比賽,連接在一起的所有的結果,所以它並不需要一個結構化的類型結果)。我認爲這可能工作:
//ElementName/string(./@AttributeName)
但是,這給了我一個語法錯誤,就像我嘗試的變化。所以目前,我這樣做:
count=$(xmllint --xpath 'count(//ElementName/@AttributeName)' file.xml)
for ((i=1; i<=count; ++i)); do
echo "$(xmllint --xpath "string((//ElementName/@AttributeName)[$i])" file.xml)"
done
這似乎...效率低下,至少。有沒有更好的辦法?
,看來,'libxml',這'xmllint'僅僅是一個命令行界面,仍然只支持XPath 1.0。好。謝謝! –