2012-07-03 167 views
0

我想从xml文件的特定节点的值,这是工作正常。Java DOM解析无法读取节点

然而,有一个行中我不能看它是:

<misc viewers="898" duration="6684"/> 

我能找到的节点,但getNodeValue()和getTextContext()都返回NULL。

是否有解决方法来获取此行的内容?

感谢

编辑:我使用这个循环来查找节点

NodeList nodes = doc.getElementsByTagName("item"); 

     for (int i = 0; i < nodes.getLength(); i++) { 

      Element element = (Element) nodes.item(i); 
      System.out.println("Title: " 
        + getElementValue(element, "title")); 
      System.out 
        .println("embed: " + getElementValue(element, "misc")); 

      System.out.println(); 
     } 
+0

有问题的一行似乎从您的问题中消失了! 如果可能,请张贴代码来演示问题:) –

回答

2

viewersduration是在misc节点的属性,而不是值。您需要呼叫getAttributes()以获取所有属性的NamedNodeMap,然后在节点映射上调用getNamedItem()以访问特定属性。

+0

谢谢我编写了下面这段代码来测试它,但是它在map.getNamedItem处产生了一个空指针。Node tmp = element.getElementsByTagName(“misc”) .item(0); \t \t \t \t \t \t \t \t如果(tmp.getNodeName()equalsIgnoreCase( “杂项”)。){ \t \t \t \t \t \t \t \t \t \t的NamedNodeMap地图= element.getAttributes(); \t \t \t \t \t System.out.println(map.getNamedItem(“viewers”)。getNodeName()); \t \t \t \t} –

+0

你打电话给'getAttributes()'在错误的东西,我想。不应该在'tmp'而不是'element'上调用它? –

+0

我不好,现在效果很好!谢谢! –