2012-07-03 2 views
0

Я пытаюсь определить значения определенных узлов из XML-файла, это работает нормально.Java DOM parsing не удается прочитать узел

Однако, есть одна линия я не могу прочитать что:

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

я могу найти узел, но getNodeValue() и getTextContext() возвращают нуль.

Есть ли обходной путь, чтобы получить содержимое этой строки?

Благодаря

редактировать: Я использую этот цикл, чтобы найти узлы

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

viewers и duration являются атрибутами misc узла, а не значения. Вам нужно позвонить getAttributes(), чтобы получить NamedNodeMap всех атрибутов, а затем вызвать getNamedItem() на карте узла, чтобы получить доступ к определенному атрибуту.

+0

Спасибо, я написал следующий фрагмент кода, чтобы проверить это, однако это привело к nullpointer на 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 ("зрители"). GetNodeName()); \t \t \t \t} –

+0

Вы считаете, что вы вызываете 'getAttributes()' неправильно. Не следует ли его вызывать на 'tmp', а не' element'? –

+0

Мой плохой, он отлично работает сейчас! Благодаря! –

Смежные вопросы