java中的XML解析器;需要在JAVA中解析未知的XML
问题描述:
可以引导我什么是我可以在java中使用的最好的XML解析器?与DOM类似,我已经检查过SAX,它不会帮助我。 另外我需要解析未知的XML并将该内容保存到文件中。所以JAXB也不会帮助我。java中的XML解析器;需要在JAVA中解析未知的XML
答
嗨下面类可以帮助您解析和处理收到的XML ..绝对增加进口,并与您的XML替换字符串..
public class XML {
public static void main (String[] args) throws Exception {
String xml = "<objects><student marks='one'/><student marks='two'/><school>Best school</school><teacher/></objects>";
// parse the above xml
InputStream in = new ByteArrayInputStream(xml.getBytes("utf-8"));
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
// processing it
Node objects = doc.getDocumentElement();
for (Node object = objects.getFirstChild(); object != null; object = object.getNextSibling()) {
if (object instanceof Element) {
Element e = (Element)object;
if (e.getTagName().equalsIgnoreCase("student")) {
String marks = e.getAttribute("marks");
System.out.println("It's a " + marks + " student!");
} else if (e.getTagName().equalsIgnoreCase("school")) {
String text = e.getTextContent();
System.out.println("It's a school that says \"" + text + "\".");
} else {
System.out.println("I don't know what a " + e.getTagName() + " is for.");
}
}
}
}
}
您可以使用节点像getFirstChild方法( )和getNextSibling()遍历子元素。如果您正在解析多个文档,您可以继续使用相同的DocumentBuilder
您是否尝试过内置于jdk中的stax解析器?你的意思是未知的XML?你如何处理你的XML标签? – 2015-04-06 08:26:03
如果您不知道XML中包含什么内容,那么解析会有什么好处呢?请尝试更详细地解释您的任务或问题。 – RealSkeptic 2015-04-06 08:32:11
解析部分很简单; ,解析器只需要有效的XML,它并不关心结构。 – 2015-04-06 08:40:14