我們的情況是,我們需要在我們的模型中支持XPath 1.0和函數current()
(和一些其他函數),但我們沒有數據作爲XML文檔。 我們編寫了一個NodeInfo實現來處理非XML數據源問題。不能在非XSLT上下文中使用current()函數
但是,當我通過設定表示根作爲文檔對象,並使用同級元素另一個對象x作爲上下文節點的對象跑的以下種類
/a/b/c[name = current()/../x]/yy/uu/name
的表達式,我得到了錯誤
當我調試我看到,在使用方面是個不能使用當前的()函數在非XSLT上下文
獨立的上下文。我如何獲得對current()
函數的支持?我試圖通過改變表達式
/a/b/c[name = ./../x]/yy/uu/name
但是,該.
被解釋爲c
。
哪個版本的薩克森你確切地使用它?爲什麼它必須是XPath 1.0,如果你使用Saxon 9,那麼你有XPath 2.0或9.7甚至XPath 3.0(你可以使用'let $ context:=。return/a/b/c [name = $ context /../ X]/YY/UU/name')。 –
有一個規範給我,我需要支持。規範限制xpath 1.0和一些借用的函數,如current()。 – user19937
有一個規範給我,我需要支持。規範限制xpath 1.0和一些借用的函數,如current()。我的實現可能使用任何東西,所以saxon 9.7當然是一種選擇,只要可以執行定製的NodeInfo實現。 – user19937