我需要一些帮助。解析 xml
文件。目前,我们正在使用 JAXB
将 XML 文件解码为 Java POJO
。我们使用“xjc”从 xsd
创建了映射器 POJO
,该映射器自创建以来一直没有更改。但我们预测 xml
的结构将会经常发生变化。因此,我们正在考虑寻找 JAXB
之外的选项,因为只要 xml
架构发生更改,我们就无法创建映射器 POJO
。我们尝试了一些解析器,例如DOM
、SAX
,但性能不如JAXB
。
我们正在寻找
- 动态处理不同结构的 xml 文件,无需预定义/创建 Java 映射器类
- 架构验证是可选的。即使模式验证失败,我们也希望解析数据并将其保留到可能的扩展
- 需要处理巨大文件。
DOMParser
在处理这些文件时存在性能问题
最佳答案
public static void main(String[] args) throws SAXException, IOException,
ParserConfigurationException, TransformerException {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(new File("document.xml"));
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
// do something with the current element
System.out.println(node.getNodeName());
}
}
}
这可能对你有帮助。这已经在dynamically read xml element and value in java中得到了回答。
关于java - 不使用 Mapper 类读取 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655685/