我正在通过StackOverflow查找,但找不到最佳答案。我需要在JAVA中读取XML文件。我的XML文件看起来象下面这样:`阅读XML元素的内部XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<server>
<server01>
<department>A1</department>
<department>A2</department>
</server01>
<server02>
<department>A1</department>
<department>A2</department>
</server02>
</server>
是否有成为了可能,在<server01>
和<server02>
之间的Java元素,但不包括文件的其余部分阅读?或者我需要使用不同的标签?我发现方法如何阅读parentnodes:
NodeList serversNames = xmlD.getDocumentElement().getChildNodes();
for (int i = 0; i < serversNames.getLength(); i++) {
Node node = serversNames.item(i);
if (node instanceof Element) {
Element childElement = (Element) node;
System.out.println("tag name: " + childElement.getTagName());
}
}
我能够读取所有的部门代码,并将其保存到数组:
NodeList serverName = xmlD.getElementsByTagName("department");
serversList = new String[serverName.getLength()];
System.out.println("zasieg: " + serverName.getLength());
for (int temp = 0; temp < serverName.getLength(); temp++) {
Element shareName = null;
shareName = (Element) serverName.item(temp);
serversList[temp] = shareName.getTextContent();
System.out.println(temp + " - " + serversList[temp]);
}
所以,再一次,有没有读父节点的元素的可能性只要?仅SERVER01的元素?
你是说你想您已经阅读的内容之后,因此在内容不读停止阅读文件?我认为你需要在你的程序中定义这个逻辑,它不会真正成为任何XML解析器的一部分。 –
目前还不清楚你想要做什么或者问题是什么。你不能只使用XPath或相当的?如果你使用事件驱动的解析器,你可以随时停止,如果真的值得的话。 –
您可以使用xstream将XML转换为对象并将其转换为XML,这是将XML转换为对象和将对象转换为XML的非常简单的方法。 – Sarma