java - 将 XML 解析为 Java 列表

标签 java xml parsing xml-parsing saxparser

我想解析下面有大量数据的xml文件,这是我的xml。

从 XML 解析为 java 列表的最佳方法是什么?我可以使用 SAXParser 来解析 XML 或任何其他有效的方法吗?我预计,我的数据将超过 100 万。

<root>
    <Company>
        <name>TATA</name>
        <Location>
          <id>1</id>
          <name>India</name>
            <branchesList>
                <branches>
                <name>Chennai</name>
                <id>Ch-1</id>
                <status>Active</status>
            </branches>
            <branches>
                <name>Hyderabad</name>
                <id>Hy-1</id>
            <status>In-Active</status>
            </branches>
            <branches>
                <name>Delhi</name>
                <id>De-1</id>
                <status>Active</status>
            </branches>
        </branchesList>
        </Location>
         <Location>
          <id>1</id>
          <name>USA</name>
            <branchesList>
                <branches>
                <name>NewYork</name>
                <id>Nw-1</id>
                <status>Active</status>
            </branches>
            <branches>
                <name>NewJersy</name>
                <id>Ne-1</id>
            <status>In-Active</status>
            </branches>
            <branches>
                <name>Denver</name>
                <id>De-1</id>
                <status>Active</status>
            </branches>
        </branchesList>
        </Location>
      </Company>

    </root>

最佳答案

我建议您查看this answer.

它建议对大型 XML 使用 SAXParser。

当java中的列表中有100万+字符串时,原则上没有问题。您最多可以有 Integer.MAX_VALUE-5 iirc。

SAXParser 的文档是 here并且相当完整。您应该可以毫无问题地获取所需的元素并将它们放入列表中。

最后,如果您想要的不仅仅是内存中的简单字符串列表,我会查看其他集合,例如 Dictionary

关于java - 将 XML 解析为 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44388324/

相关文章:

java - Android:下载到 SD 时出现问题

java - 通过标签和属性查找节点的有效方法

java - Android Studio - TextView 在数据库中进行更改后不更新

java - 解析 xml 时如何检查空标签?

C++ 初学者 - 从命令行读取 3 个连续值的最佳方法?

java - 类不存在:终端中的Mapreduce程序

java - 从 url 使用 get 方法时,json 中的奇怪字符

c# - 我可以从我将要读取的 xml 文件创建一个 XmlNamespaceManager 对象吗?

c - 使用 Bison 时的错误

java - JAXB - Beans 到 XSD 还是 XSD 到 beans?