Вы используете getElementsByTagName
метод, который возвращает org.w3c.dom.NodeList
объект. В случае отсутствия элементов с данным именем NodeList.getLength
метод возвращает 0
. Итак, приведенный ниже код безопасно получает текстовое содержимое:
NodeList locations = document.getElementsByTagName("location");
if (locations.getLength() > 0) {
String textContent = locations.item(0).getTextContent();
System.out.println(textContent);
}
Или вы можете создать метод, который будет это делать:
public static String getFirstTextContent(Document node, String tagName) {
NodeList locations = node.getElementsByTagName(tagName);
if (locations.getLength() > 0) {
return locations.item(0).getTextContent();
}
return "";
}
и ваш код может выглядеть так:
String locationNode = getFirstTextContent(document, "location");
if (locationNode.length() > 0) {
String DEVICEID = getFirstTextContent(document, "deviceId");
String[] LOCATION = getFirstTextContent(document, "location").split("\\/");
}