当解析xml时我们一般要的是内容,一般不解析xml,当用jaxb解析XML时,如果记录命名空间相关信息,也会让类显得臃肿
以下为忽略命名空间的解析xml的代码
/**
* 解析xml(忽略命名空间)
* @param cla
* @param content
* @return
* @throws JAXBException
* @throws ParserConfigurationException
* @throws SAXException
*/
public static Object unmarshall(Class<?> cla , String content) throws JAXBException, ParserConfigurationException, SAXException {
JAXBContext jaxbContext = JAXBContext.newInstance(cla);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StringReader reader = new StringReader(content);
SAXParserFactory sax = SAXParserFactory.newInstance();
sax.setNamespaceAware(false);
XMLReader xmlReader = sax.newSAXParser().getXMLReader();
Source source = new SAXSource(xmlReader, new InputSource(reader));
Object o = unmarshaller.unmarshal(source);
return o ;
}