【问题标题】:Parsing XML to Java List将 XML 解析为 Java 列表
【发布时间】:2017-11-07 08:54:20
【问题描述】:

我想解析下面有大量数据的 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>

【问题讨论】:

标签: java xml parsing xml-parsing saxparser


【解决方案1】:

我建议你看看this answer.

它建议对大型 XML 使用 SAXParser。

由于在 java 的列表中有 100 万个以上的字符串,原则上没有问题。您可以拥有多达Integer.MAX_VALUE-5iirc。

SAXParser 的文档是here,并且非常完整。获取所需元素并将它们放入列表中应该没有问题。

最后,如果您想在内存中拥有更多字符串的简单列表,我会查看其他集合,例如 Dictionary

【讨论】:

  • 解析本身并不是这里真正的问题。是用户想要在内存中拥有的列表,这听起来也不是很多,但无论如何,这不是 sax 解析器对内存使用的担心。
  • 是的,你是对的,他的问题的“标题”部分提到将其放入列表中。
  • 我试图回答他问题的所有部分。感谢您的反馈@大卫霍夫曼
  • 谢谢让我按建议试试
猜你喜欢
  • 2014-12-25
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多