2012-04-30 187 views
3

我正在開發一個項目,我必須使用java來操作XML文件。 早些時候,我通過使用節點名稱獲取節點,即。 getElementsByTagName()。現在有一個問題出現,當我有一個與父節點和子節點具有相同名稱的XML文件。
我該如何區分它們。如何找到一個節點,如果父節點和子節點具有相同的名稱?

這是我的xml文件的簡短示例。

<deviceparameters> 
    <parameter> // parent 
     <name>ABC</name> 
     <parameter>Yes</parameter> // child with same name 
     <value>20</value> 
    </parameter> 
</deviceparameters> 

在此先感謝。

+0

檢查節點的「parentNode」是否具有相同的名稱?如果是這樣,那麼你在孩子節點。 –

+0

@MarcB檢查父名稱的任何特殊方法。 –

+0

我不是一個java編碼器,但是任何不是全部垃圾的XML庫都有向上和向下遍歷一棵樹的方法,其中一個將是一個'parentNode'來獲取當前節點的直接祖先。 –

回答

2

以名稱找到deviceparameters開頭,然後找到一個有名兒parameter,這是你的第一個,然後是parameter子。 Javadoc會告訴你用來查找一個命名的孩子的方法(你可能需要遍歷子元素)。

+0

好吧..但代碼可能會變得很複雜。任何簡單的方法,我的意思是讓我可以直接跳到那個節點。 –

+1

我不這麼認爲。使用DOM的全部內容是你必須導航。如果您使用的是XPath之類的東西,您可以指定路徑。 –

+0

XPath真的會減少代碼嗎?哪一個會更好XPath或DOM? –

相關問題