我需要預先評估一個xpath表達式而不知道它的返回值。我不關心節點和NodeSet之間的區別,但我關心NodeSet與String或數字。XPathExpression動態返回值
例如,帶有sum
或concat
函數的xpath可返回數字或字符串(或布爾值)。具有常規xml路徑的xpath返回一個節點集,可能只有一個節點。
如何才能調用XPathExpression.evaluate()
函數(javadoc here)?我不知道QName傳遞給它作爲第二個參數。類XPathConstants
包含允許的常量的閉合列表(這些是Node,NodeSet,String,Number和Boolean)。
是否可以指定「all」或「do not care」值,然後檢查返回的對象的類型?
我想也許使用這個函數的重載版本,它總是返回一個字符串。但是,如果xpath表達式旨在返回節點集,我不會看到這將如何工作。
在[DOM Level 3 XPath](http://www.w3.org/TR /DOM-Level-3-XPath/xpath.html#XPathResult-ANY-TYPE) – 2011-04-05 16:02:47
嘿亞歷杭德羅,這是非常有用的輸入。我發現Xalan 2.7.1有這個XPathEvaluatorImpl類,它提供了你提到的功能,所以我可以直接使用它(不通過javax factory api)。如果您將評論添加爲答案,我會接受它。 – Yoni 2011-04-05 18:26:44
你可以回答你自己的問題。最後,您發現爲您的語言實現DOM XPath的XPath引擎。 – 2011-04-05 18:30:28