當解析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 ;
}