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

问题描述:

我应该使用哪个API来解析存储在字符串缓冲区中的URL的XML响应?如果有一个XML响应,它存储在一个字符串缓冲区中,我将如何解析它?

使用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()))); 

这取决于你想如何处理XML。

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

如果您想要操作XML树,并在树上遍历节点,然后使用DOM API。该方法要求整个XML DOM存储在内存中,但允许您操作DOM并对其执行XPath类型查询。

我相信SAXON可以同时处理。