java - 不使用 Mapper 类读取 XML

标签 java xml xml-parsing jaxb

我需要一些帮助。解析 xml 文件。目前,我们正在使用 JAXB 将 XML 文件解码为 Java POJO。我们使用“xjc”从 xsd 创建了映射器 POJO,该映射器自创建以来一直没有更改。但我们预测 xml 的结构将会经常发生变化。因此,我们正在考虑寻找 JAXB 之外的选项,因为只要 xml 架构发生更改,我们就无法创建映射器 POJO。我们尝试了一些解析器,例如DOMSAX,但性能不如JAXB

我们正在寻找

  1. 动态处理不同结构的 xml 文件,无需预定义/创建 Java 映射器类
  2. 架构验证是可选的。即使模式验证失败,我们也希望解析数据并将其保留到可能的扩展
  3. 需要处理巨大文件。 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/

相关文章:

java - 从格式 A 的 XML 转换为格式 B 的 XML

perl - 哪个是更快的 XML 解析器?

java - 找出图像的扩展名(如果该图像没有任何扩展名)

C# 将日期从 xml(格式可能因地区而异)转换为 DateTime 数据类型

java - 我在 [row,col] :[1, 2] 处收到 XMLStreamException

sql - FOR XML 路径打开/关闭

java - 从给定的前序遍历构造 BST?

java - Android - 使用 NotificationListener 服务接收日历提醒通知

java - Inno Setup 常量相当于 System.getProperty ("user.home")

java - Xml Xpath 值中的多个命名空间