Если я проанализирую тег, содержащий тэг <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();
}
У вас есть элемент
внутри элемента.
Поэтому извлекаем все кваддеалы, а затем итерации каждого из них и извлекаем из него элемент 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
}
}
}
Надеюсь, что это поможет.
"Имя" не NULL? Я не вижу, чтобы вы это проверяли. Это хорошая практика кодирования для сравнения, если это возможно:
if ("quaddeals_conditions".equalsIgnoreCase(name))
...
Итак, даже если "name" имеет значение NULL, вы не получите исключение NullPointerException. Всегда проверяйте значение null перед доступом к некоторому члену объекта.