2012-07-03 129 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

我不好,現在效果很好!謝謝! –