2012-04-30 147 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? –

相关问题