如果我事先不知道Java对象,如何将XML转换为Java对象?

时间:2019-02-07 06:00:09

标签: xml xsd jaxb xstream

FileReader fileReader = new FileReader("test.xml"); // load your XML file  
XStream xstream = new XStream(); // init XStream  
// Define root alias so XStream knows which element and which class are equivalent.
xstream.alias("test", Test.class);   
Test test = (Test) xstream.fromXML(fileReader);  

注意:上面的过程是如果我事先知道该类,但是如果我不知道有关test.class的信息,那么如何将其转换为Java类?

1 个答案:

答案 0 :(得分:0)

诸如JAXB的数据绑定技术将XML模式映射到诸如Java之类的面向对象语言的一组类。只有在XML模式稳定且到Java类的映射是稳定且事先已知的情况下,它们才起作用。

当您要处理事先不知道其结构或结构具有许多变体和版本的XML实例时,则不适合使用数据绑定技术。对于这些,您需要一种更通用的方法,例如使用类似DOM的API(XOM和JDOM2可能是最好的),或者使用不了解模式的XSLT或XQuery。