哪一种是阅读xml的有效方法。我知道两种方式:
1)JAXB:
通过使用jaxb注释对我的类进行注释,我们使用Marshalling& amp;来获取java对象中的xml。对象的解组。
2)DOM: 可以使用dom解析器来解析xml并使用xml中的xpath值。
DOM示例:
File fXmlFile = new File("/Users/link1/input.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
根据业务需求,我期望在上述两种方式之间使用最快的方式和更好的方法。建议和一些策略将不胜感激。
答案 0 :(得分:2)
要问的第一个问题:您的XML是否始终具有相同的结构,并且此结构是否可以映射到Java对象的层次结构上?
如果是 - >要么使用JAXB,要么使用Jackson XmlMapper
如果否(您的XML结构不同) - >您是否需要随机访问XML中的数据,包括许多读取和可能的一些写入(之后您将数据转换回XML)?
2.1。如果是 - >使用DOM(它设计用于XML文档树的内存处理,但有更多的开销)
2.2。如果否(更有效的XML解析) - >您是否需要解析XML中的所有信息,还是需要XML验证?
2.2.1如果是 - >使用SAX(它包含在JDK中并允许验证)
2.2.2如果否 - >使用StAX(它是一个XML pull解析器,允许读取XML中的某些值,而不必解析完整的XML,但它不提供验证。)