Я пытаюсь разобрать несколько конкретных частей xml-документа. Я собираюсь извлечь данные из раздела анализа, мне нужны предупреждения, ошибки, проходы, и мне нужно перейти в каждый из разделов () и получить результат, уровень результата и текст, например, в этой «ОШИБКЕ» Мне нужно получить уровень ошибки и текст «ОШИБКА».
<document>
<configuration>
</configuration>
<data>
</data>
<analysis warnings="5" errors="3" information="0" passed="false">
<files>
</files>
<results>
<form>
<section number="0">
<result level="error">ERROR</result>
<result level="error">ERROR</result>
<result level="error">ERROR</result>
<result level="warning">Warning</result>
<result level="warning">Warning</result>
</section>
<section number="1">
<result level="warning">WARNING</result>
</section>
<section number="2">
<result level="warning">WARNING</result>
<result level="warning">WARNING</result>
</section>
</form>
</results>
</analysis>
</document>
У меня такой код:
public void ProcessXMLFromPath(String path) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(path);
NodeList nodeList = document.getDocumentElement().getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node instanceof Element) {
System.out.println(node.getAttributes().toString());
NodeList childNodes = node.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
Node cNode = childNodes.item(j);
if (cNode instanceof Element) {
System.out.println(cNode.getNodeName().toString());
if(cNode.getNodeName().toString() == "analysis")
{
String content = cNode.getLastChild().getTextContent().trim();
System.out.println(content);
//I thought this would print the children under the analysis section to the screen but I was mistaken. It does however make it to this point.
}
}
}
}
}
}
Единственное, что я могу распечатать на своей консоли, это:
configuration
data
analysis
Любая помощь будет принята с благодарностью!