Я пытаюсь разобрать xml-файл, используя dom parser. XML-файл содержит множество пропущенных тегов.
Что я хочу сделать, так это то, что если я получу какой-либо отсутствующий тег (как в примере ниже, тег второго художника не содержит тега изображения), я хочу установить строковое изображение как некоторое значение, например «na», чтобы я мог поместить значения в массив или список.
Ниже приведен пример
<list>
<artist>
<id>1</id>
<name>name1</name>
<image>name1.jpg</image>
</artist>
<artist>
<id>2</id>
<name>name2</name>
</artist>
</list>
Мой текущий код:
NodeList list = element.getElementsByTagName("artist");
if (list != null && list.getLength() > 0) {
for (int i = 0; i < list.getLength(); i++) {
Node item = list.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("__id")) {
try {
String strTitle = property.getFirstChild()
.getNodeValue();
System.out.println(strTitle);
} catch (NullPointerException e) {
// TODO: handle exception
System.out.println("Null ID");
}
}
else if (name.equalsIgnoreCase("__name")) {
try {
String strTitle = property.getFirstChild()
.getNodeValue();
System.out.println(strTitle);
} catch (NullPointerException e) {
// TODO: handle exception
System.out.println("Null Name");
}
}
else if (name.equalsIgnoreCase("__image")) {
try {
String strTitle = property.getFirstChild()
.getNodeValue();
System.out.println(strTitle);
} catch (NullPointerException e) {
// TODO: handle exception
System.out.println("Null Image");
}
}
}`