我想将在string变量中收到的xml数据提取到列表中。是否最好使用SAX解析器或Xpath,这是最快的方式?
如果你能引导我一些代码,也会有所帮助。
输入字符串
<TestEventEntity xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Sid>u34u5i435b4ih5b</Sid>
<UserId>9485924857429857</UserId>
<TestPercentId>4957493574395</TestPercentId>
<TestGroup>test2</TestGroup>
<SessionStartDt>2015-02-17T08:38:18.5179128-06:00</SessionStartDt>
<Event>my Event</Event>
</TestEventEntity>
预期输出
[u34u5i435b4ih5b,9485924857429857,4957493574395,test2,2015-02-17T08:38:18.5179128-06:00,my event]
答案 0 :(得分:0)
答案 1 :(得分:0)
我不确定性能,但以下代码是您想要的简单方法:
File xmlFile = new File("path/to/file.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
//Get childs of root tag
NodeList elementsUnderRootTag = doc.getElementsByTagName("rootTagName").item(0).getChildNodes();
//Iterating over childs of root node
for (int i = 0; i < elementsUnderRootTag.getLength(); i++) {
Node child = elementsUnderRootTag.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element elm = (Element) child;
System.out.pringln(elm.getTextContent());
}
}
有关解析xml文件(或字符串)的不同类型的更多信息,请查看here。您可以在那里运行示例代码。