Дом парсинг в Android

1

Если я проанализирую тег, содержащий тэг <p>Some Text</p>, я получаю исключение с нулевым указателем.

Мой RSS-канал выглядит следующим образом:

<quaddeals_conditions><p>Limit one QuadDeal</p></quaddeals_conditions>

Мой код:

if (name.equalsIgnoreCase("quaddeals_conditions")) {
    property.normalize();
    conditions = property.getFirstChild().getNodeValue();   
}
  • 0
    Можете ли вы опубликовать свое сообщение Logcat и некоторые подробные объяснения вашего кода?
Теги:
dom
xml-parsing

2 ответа

2
Лучший ответ

У вас есть элемент

внутри элемента.

Поэтому извлекаем все кваддеалы, а затем итерации каждого из них и извлекаем из него элемент p:

DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.inputStream);
Element root = dom.getDocumentElement();

// snip

NodeList items = root.getElementsByTagName("quaddeals_conditions");
for (int i = 0; i < items.getLength(); i++) {
            Node item = items.item(i);
            NodeList properties = item.getChildNodes();
            for (int j = 0; j < properties.getLength(); j++) {
                Node property = properties.item(j);
                String name = property.getNodeName();
                if (name.equalsIgnoreCase("p")) {
                    property.getFirstChild().getNodeValue(); // Your paragraph data
                }
            }
}

Надеюсь, что это поможет.

  • 0
    Я всегда сталкиваюсь с этим при разборе dom и думаю, что у вас правильный подход. Ему, возможно, придется опустить несколько уровней, но я верю, что вы показали ему свет;)
  • 0
    Это не элемент внутри элемента, который включает в себя пункт .. Пожалуйста, проверьте его ..
Показать ещё 1 комментарий
0

"Имя" не NULL? Я не вижу, чтобы вы это проверяли. Это хорошая практика кодирования для сравнения, если это возможно:

if ("quaddeals_conditions".equalsIgnoreCase(name))...

Итак, даже если "name" имеет значение NULL, вы не получите исключение NullPointerException. Всегда проверяйте значение null перед доступом к некоторому члену объекта.

  • 0
    01-24 20: 04: 24.858: VERBOSE / Exception ee (447): java.lang.NullPointerException: println необходимо сообщение
  • 1
    Пожалуйста, расскажите, как разобрать данные, которые содержат параграф, которого мне достаточно ..
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню