Нуб здесь. Я пытаюсь прочитать XML-файл в Java с помощью DOM, импортируя данные из разных объектов. Поскольку элементы вложены, я пытаюсь получить информацию о каждом ребенке и внуке и не могу прочитать информацию о внуке.
это пример файла
<?xml version="1.0" encoding="UTF-8"?>
<AAAA>
<BBBB>
<CCC>text</CCC>
<DDD>
<a>value</a>
<b>value</b>
<c>value</c>
</DDD>
<EEE>
<aa>
<a>text</a>
<b>
<a>value</a>
<b>value</b>
<c>value</c>
</b>
</aa>
<bb>
<a>text</a>
<b>
<a>value</a>
<b>value</b>
<c>value</c>
</b>
</bb>
</EEE>
</BBBB>
</AAAA>
Я могу добраться до узла, но не до следующих.
Это часть кода, который у меня есть:
@SuppressWarnings("unchecked")
public static List<BBBB> readXMLFileToList(File file) {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setIgnoringElementContentWhitespace(true);
dbFactory.setNamespaceAware(true);
DocumentBuilder dBuilder;
List<BBBB> list = new ArrayList<>();
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("AAAA");
for (int i = 0; i < nodeList.getLength(); i++) {
list.add(getBBBB(nodeList.item(i)));
}
} catch (SAXException | ParserConfigurationException | IOException e1) {
e1.printStackTrace();
}
return list;
}
private static BBBB getBBBB (Node node) {
BBBB bbbb = null;
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
String ccc = getTagValue("CCC", element);
if (dddNode.getNodeName().trim().equals("#text")) {
dddNode = element.getFirstChild().getNextSibling();
}
DDD ddd = getDDD(dddNode);
bbbb = new BBBB (ccc, ddd);
}
return bbbb;
}
private static DDD getDDD(Node node) {
Element element = (Element) node;
Double a = Double.parseDouble(getTagValue("a", element));
Double b = Double.parseDouble(getTagValue("b", element));
Double c = Double.parseDouble(getTagValue("c", element));
DDD ddd = new DDD (a,b,c);
return ddd;
}