2013-03-26 65 views
2

的名称属性我有一个看起来像这样的XML文件:无法获取Childnode

<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist"> 
<exist:collection name="/db/RCM" created="2013-03-24T09:37:34.957+05:30" owner="admin" group="dba" permissions="rwxrwxrwx"> 
<exist:resource name="demo2.xml" created="2013-03-24T09:44:13.696+05:30" last-modified="2013-03-24T09:44:13.696+05:30" owner="guest" group="guest" permissions="rw-r--r--"/> 
<exist:resource name="demo3.xml" created="2013-03-24T09:45:47.592+05:30" last-modified="2013-03-24T09:45:47.592+05:30" owner="guest" group="guest" permissions="rw-r--r--"/> 
<exist:resource name="rcmdemo.xml" created="2013-03-25T11:36:45.659+05:30" last-modified="2013-03-25T11:36:45.659+05:30" owner="guest" group="guest" permissions="rw-r--r--"/> 
<exist:resource name="rcmdemo2.xml" created="2013-03-25T11:47:03.564+05:30" last-modified="2013-03-25T11:47:03.564+05:30" owner="guest" group="guest" permissions="rw-r--r--"/> 
</exist:collection> 
</exist:result> 

我想获取XML文件的名称,所以输出如下所示:

demo2.xml 
demo3.xml 
rcmdemo.xml 
rcmdemo2.xml 

我写了下面的代码:

NodeList nodeList = doc.getElementsByTagName("exist:resource"); 
for (int i = 0; i < nodeList.getLength(); i++) { 
    Node n = nodeList.item(i); 
    Node actualNode = n.getFirstChild(); 
    if (actualNode != null) { 
     System.out.println(actualNode.getNodeValue()); 
    } 
} 

但它不返回我想要的输出,我要去哪里错了?

+0

我不认为名字是childnode,检查给定节点的属性。 – smk 2013-03-26 03:57:45

回答

1

你必须从给定节点的属性,因为你nameexist:resource属性。

NodeList nodeList = doc.getElementsByTagName("exist:resource"); 
     for (int i = 0; i < nodeList.getLength(); i++) { 
      Node n = nodeList.item(i); 
      Node actualNode = n.getFirstChild(); 
      if (actualNode != null) { 
       // Will return node value 
       System.out.println(actualNode.getNodeValue()); 
       // Will return the attribute value 
       System.out.println(current.getAttributeValue("name")); 
      } 
     }