Помогите разобраться как парсить xml
есть xml файл
<tbl Data="2018-08-29">
<Table>
<Book>
<Name>ghjfjs</Name>
<Price>Afddsdsgni</Price>
<Size>25</Size>
</Book>
<Book>
<Name>ghjfjs</Name>
<Price>Afddsdsgni</Price>
</Book>
</Table>
вот код:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(URL_PAGE);
NodeList cuntryElements = document.getDocumentElement().getElementsByTagName("Book");
for (int i = 0; i < cuntryElements.getLength(); i++) {
Node node = cuntryElements.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
...
String getCurrentElement = getTagValue("Size", element);
}
}
все работает, вот только когда в xml нет элемента 25 в одном из блоков, то вылетает NullPointerException. Как можно проверить, что этот тег отсутствует?
Ответы (1 шт):
Автор решения: Yitzhak Khabinsky
→ Ссылка
Вместо этого:
String getCurrentElement = getTagValue("Size", element);
Вы можете использовать следующий защитный подход:
String getCurrentElement = "";
if(element.getElementsByTagName("Size").getLength() > 0)
{
Node nodeX = element.getElementsByTagName("Size").item(0);
getCurrentElement = nodeX.getTextContent();
}
И использовать этот метод для всех элементов XML ...