2012-11-06 49 views
1

我想準備一個函數,它會給我在xml中節點的位置。
例如:節點在xml中的位置--Java

int NodePosition = doc.getDocumentElement().getChildNodes().item(t).getNodeName().Position() 

和未來,我想作出一些像這樣的(當然這是例子):

System.out.println(Node.row[NodePosition].tostring()); 

是否有可能做這樣的事情?或者,也許你知道一些這樣的功能。

例如,當我走得更深時,獲取位置就有問題。由於m = 7

​​

當我嘗試做這個(但我要保存的位置):

System.out.println(doc.getDocumentElement().getChildNodes().item(7).getNodeName()); 

我得到錯誤

java.lang.NullPointerException 
+2

請定義節點位置是什麼(舉例),以及您想創建的函數應該作爲參數並返回,因爲它根本不明確。 –

+0

我使用循環「for」來檢查節點,你可以從循環中看到item(t)例如「i」。我想獲得這個節點的位置並寫入一些int。也許你知道如何檢查並保存節點的位置爲整數?並稍後用於顯示數據。 –

+0

這個位置就是'i'的值。告訴我們你的嘗試。 –

回答

4

對我來說,它看起來像你重新發明輪子 - 您正在嘗試構建您自己的XPath版本 - 請參閱:http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html

How to select specified node within Xpath node sets by index

+0

我明白這一點,但我永遠不知道如何看我的XML樹。例如,我的程序將加載具有不同參數和節點的所有xml。你可以給我你的XML,我的程序會加載這個,但即使我不知道你的XML結構。 –

+0

不用擔心 - XPath接受一個字符串作爲參數,它看起來與「文件路徑」非常相似,此外它允許您指定數字索引,例如「// books/authors/author/book [3]」,這意味着在書籍,子節點作者,子節點作者,第三本書中。或者,如果您不知道節點名稱並做各種花哨的東西,您可以使用*。此外,它是一種標準,適用於所有主流編程語言 - 它並不特定於Java – thedayofcondor