我需要將節點作爲參數傳遞給XSL樣式表。問題是參數是以字符串形式發送的。我已經看到了關於這個主題的幾個SO問題,並且我知道該解決方案(在XSLT 1.0中)是使用外部函數node-set()
將字符串轉換爲節點集。將節點作爲參數傳遞給XSL樣式表
我的問題是,我使用了eXist DB我不能似乎能夠得到它的XSLT處理器找到任何這樣的功能。我嘗試了命名空間http://exslt.org/common
的EXSLT node-set()
以及Saxon和Xalan版本(我認爲eXist曾經使用Xalan,但現在可能是Saxon)。
難道這些擴展,即使在由存在,則使用XSLT處理器是否允許?如果沒有,我還能做些什麼嗎?
好了,你可以先檢查你使用的XSLT處理器的細節與像http://home.arcor.de/martin.honnen/xslt/processorTest3.xml樣式表來輸出屬性,如'系統屬性(「XSL: vendor')和system-property('xsl:product-version')''。至於您當前的嘗試,您是使用Java代碼執行XSLT轉換還是XQuery?考慮顯示該代碼傳遞參數並運行轉換的詳細信息。 –
您不希望閱讀其他類似的SO問題/答案,除非它們與eXist特別相關,因爲將參數傳遞給XSLT轉換的方式取決於特定產品提供的API的詳細信息,並且因產品而異到另一個。 node-set()函數的目的不是解析作爲字符串提供的XML,儘管有些實現會這樣做。 –
http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/transform&location=java:org.exist.xquery.functions.transform.TransformModule&details =真表示有關參數的「使用XML片段具有下列結構的樣式表的參數可以在第三個參數進行傳遞:' '」。這看起來好像參數,至少對於'transform'函數,只是名稱/值字符串對。 –