我試圖使用XPath表達式來查找引用VTD-XML中當前元素的元素。所以說我的XML包含書籍和評級,看起來像這樣:僅使用XPath的VTD-XML中的動態查找
<root>
<book id="1" name="Book1"/>
<book id="2" name="Book1"/>
<rating book-id="1" value="5"/>
<rating book-id="2" value="3"/>
</root>
首先我遍歷所有書籍元素。然後,對於每本書,我想執行一個獲取該書評分的XPath表達式。例如:
/root/rating[@book-id=current()/@id]/@value
這不起作用,因爲current()函數是XSLT所獨有的。所以我試着將一個名爲「current」的變量表達式聲明爲「。」意思是「當前書」,但這不起作用,或者是因爲(顧名思義),一個變量表達式不會存儲表達式的結果,而是表達式本身。
有沒有一種方法可以使用XPath表達式在VTD-XML中實現這種效果? (我意識到人們在代碼中做的各種方式,但我想用純XPath的,因此用戶可以很容易地創建一個配置文件描述他們的數據格式)
編輯: 接受的答案的結果是,我想要使用單個XPath表達式無法完成。最後我加入一個選項,讓用戶基本上可以指定如何對當前圖書的唯一標識,可以發現(即「./@id」,也許「./isbn」)。然後,我的代碼執行此表達式,並將結果替換爲評級搜索XPath中的某個佔位符(例如「$$」)。
我在vtd-xml-users列表上看到了您的帖子,有什麼沒有回答? –
不,我的問題已得到解答。我明天會發送一個後續鏈接到這篇文章。順便說一下,感謝VTD-XML,這太棒了! – zwets