Я играю с парсингом xml и немного поучился на различных ресурсах. Я новичок в мире java, и я все еще пытаюсь разобраться в этом.
В настоящее время я застрял, пытаясь разобрать что-то похожее на это:
<poem>
<line>Hey diddle, diddle
<i>the cat</i> and the fiddle.
</line>
</poem>
Это не факт xml, но реальный не выглядит намного хуже, поэтому я написал это вместо (та же идея, я думаю)
Я пытаюсь получить вывод примерно так:
Element : line
text : Hey diddle, diddle
element: i
text: the cat
text: and the fiddle.
------------------------
OR
------------------------
line: Hey diddle, diddle
i: the cat
and the fiddle
Мой код на данный момент выглядит так:
public class parsingWithDOM {
public static void main(String[] args) {
File xml = new File("/Users.../xmlTest.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xml);
NodeList nList = doc.getElementsByTagName("line");
Node l = nList.item(0);
if (l.getNodeType() == Node.ELEMENT_NODE) {
Element line = (Element) l;
System.out.println(line.getTagName() + ": " + line.getTextContent());
NodeList lineList = line.getChildNodes();
for (int i = 0; i < lineList.getLength(); i++) {
Node node = lineList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element lineElement = (Element) node;
System.out.println(lineElement.getTagName() + ": " + lineElement.getTextContent());
}
}
}
} catch (IOException | ParserConfigurationException | DOMException | SAXException e) {
System.out.println(e.getMessage());
}
}
}
В любом случае, я получаю следующий вывод (не совсем то, что я ищу)
line: Hey diddle, diddle the cat and the fiddle.
i: the cat
Любая помощь будет очень ценится ?