如何使用java在所有标记名称相同时读取xml文件

时间:2014-03-13 21:08:16

标签: java xml xml-parsing

<?xml version="1.0"?>
<test name="test">
    <params>
        <param name="credentials" type="list">
            <item>
                <property name="username" value="abc"/>
                <property name="password" value="cba"/>
            </item>
            <item>
                <property name="username" value="user1"/>
                <property name="password" value="pass1"/>
            </item>
        </param>
        <param name="otherKey" value="singleValue"/>
    </params>

我可以使用param标签,其中一个有项目或一个是空的。无论如何我的问题是如何使用java读取<item>标签? (稍后可能会有更多项目的param标签)一种方法是获取标记<param>的节点列表。然后为那些具有子节点并使用<item>的param获取标记getelementbyTag()的节点列表。

有没有其他方法可以避免第二个节点列表?

如果是,那么如何?

1 个答案:

答案 0 :(得分:0)

要避免使用第二个节点列表项,您可以指定所需节点列表的索引。在这种情况下,我假设您只想获得第一个节点列表。代码必须如下。

  
    

字符串用户名;     字符串密码;

         

NodeList nList = doc.getElementsByTagName(&#34; param&#34;)

         

节点nNode = nList.item(0); //这将指向第一个     节点列表项

         

if(nNode.getNodeType()== Node.ELEMENT_NODE)
        {Element eElement =(Element)nNode;

  
    username=eElement.getAttribute("username");
     
password=eElement.getAttribute("password"); 
         

}