如果存在XML响应并且它存储在字符串缓冲区中,我将如何解析它?

时间:2010-12-08 14:35:45

标签: java xml

我应该使用哪个API来解析存储在字符串缓冲区中的URL的XML响应?

2 个答案:

答案 0 :(得分:3)

使用JAXB

// Given StringBuffer sb from your URL
String contextPath = "path/to/generated/jaxb/package";
JAXBContext jc = JAXBContext.newInstance(contextPath);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Object o = u.unmarshal(new StreamSource( new StringReader(sb.toString())));

答案 1 :(得分:2)

这取决于您希望如何处理XML。

如果它是一个大文档,你只想从头到尾执行一次解析,那么使用SAX API。此方法将使用更少的内存并具有更高的处理吞吐量。

如果您想操纵XML树,并在树上上下遍历节点,那么使用DOM API。此方法需要整个XML DOM在内存中,但允许您操作DOM并对其执行XPath类型查询。

我相信SAXON可以同时处理这两种情况。