gpt4 book ai didi

java - 在 Java 或 Scala 中解析扁平的、大量属性的 xml 的最快方法

转载 作者:行者123 更新时间:2023-11-29 10:02:56 24 4
gpt4 key购买 nike

如果我有一个像下面这样的大 xml 文件。在 Java 或 Scala 中解析它的最快方法是什么。流式传输单个元素很重要但不是绝对必要

我感兴趣的是从每个结果对象中获取属性值。

<Response>
<Result att1="1", att2="2", att3="3", att4="4", att5="5"/>
<Result att1="1", att2="2", att3="3", att4="4", att5="5"/>
<Result att1="1", att2="2", att3="3", att4="4", att5="5"/>
<Result att1="1", att2="2", att3="3", att4="4", att5="5"/>
</Response>

最佳答案

如果您的文件很大并且您不想将整个文件加载到内存中(即 DOM),那么您可以采用的一种方法是拉式解析路线。如果你想在 scala 中进行拉式解析,寻找“开始元素”事件以检查属性,那么你可以这样做:

import scala.io.Source
import java.io.File
import scala.xml.pull.XMLEventReader
import scala.xml.pull.EvElemStart

val src = Source.fromFile(new File(pathToXml))
val reader = new XMLEventReader(src)
reader foreach{
case EvElemStart(_, _, attrs, _) =>
//do something here

case _ =>
}

遵循这种方法应该确保您的文件不会被读入内存并且应该很快。

关于java - 在 Java 或 Scala 中解析扁平的、大量属性的 xml 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com