2012-05-03 35 views
1

我有一個Node theFinalNode來自Document,它被sax2dom解析器解析,我從另一個文檔從完全相同的頁面以不同的方式解析,我想在其他文檔中找到節點使用Xpath,所以我試圖讓這樣的代碼:使用Xpath在文檔中查找節點

 private Node node; 
Node theFinalNode; 
............ 

Document document = builder.parse(someURL); 
XPath xpath = XPathFactory.newInstance().newXPath(); 
node = xpath.evaluate(document,theFinalNode, XPathConstants.NODE); 

但似乎心不是爲我上面提到的方式適合構造。有沒有解決方案?

錯誤

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: javax.xml.xpath.XPath.evaluate 

編輯:

i changed last line into:`  node = (Node) xpath.evaluate("//" + theFinalNode.getNodeName(),document, XPathConstants.NODE); 

現在的錯誤是:

Caused by: javax.xml.transform.TransformerException: A location step was expected following the '/' or '//' token. 
+0

什麼是你得到 – UVM

+0

錯誤@UNNI的Xpath.evaluate(...) – lonesome

+0

沒有合適的構造請貼完整的錯誤 – UVM

回答

0

有一個在你XPath.evaluate()

第一次使用該參數的問題對meter必須是xpath表達式(String),第二個是上下文,最後一個是返回類型。 因此,您可以將xpath表達式作爲第一個參數來檢測您的節點(即"//" + theFinalNode.getNodeName()),並將其作爲要在其中搜索節點的Document的第二個參數。

+0

請看看我的編輯 – lonesome

+0

對不起,我認爲節點是一個元素,你可以打印輸出的thefinalNode.getNodeName()並指定類型?所以我們可以幫助你創建正確的xpath表達式 – Teg

+0

它的**#文本** ... – lonesome

相關問題