我有一些xml文檔,我想對其執行xquery操作。 xmllint似乎通過返回與查詢相匹配的節點來完成我想要的操作。這並不能幫助我,因爲這個節點可能存在很多地方,我不知道匹配的位置。xmllint輸出的xpath
一個非常簡單的例子是xmllint -xpath '//關機[文本()= 「假」]'回報:<shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown>
。
這告訴我有匹配的節點,但不是哪個節點。有沒有獲得返回節點的實際xpath的方法?我一直無法找到任何東西。
儘管給出的示例也可以在編輯器中對XML文檔進行grep處理,但對於更復雜的查詢,這種方法是不可能的。
'FN:路徑()'(HTTP ://www.w3.org/TR/xp ath-functions-30 /#func-path)是你正在尋找的。但是,這是XQuery 3.0,我不認爲xmllint支持它。如果你不必使用這個工具,BaseX和eXist是兩個開源的XQuery 3.0處理器。 'basex -q'//關閉[文本()=「false」] /路徑()''工作是什麼。 – dirkk
謝謝,我會研究這些組件。 – Allpointsw