gpt4 book ai didi

java - Dom4j 与 JAXB 比较,用于读取和更新大型复杂的 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:34:37 40 4
gpt4 key购买 nike

我有一个具有稳定树结构和超过 5000 个元素的 XML 文件。

部分内容如下:

<Companies>
<Offices>
<RevenueInfo>
<TransactionId>14042015014606877</TransactionId>
<Company>
<Identification>
<GlobalId>25142400905</GlobalId>
<BranchId>373287734</BranchId>
<GeoId>874</GeoId>
<LastUpdated>2015-04-14T01:46:06.940</LastUpdated>
<RecordType>7785</RecordType>
</Identification>
<Info>
<DataEntry>
<EntryId>12345</EntryId>
</DataEntry>
<DataEntry>
<EntryId>34567</EntryId>
</DataEntry>
<DataEntry>
<EntryId>89076</EntryId>
</DataEntry>
<DataEntry>
<EntryId>13211</EntryId>
</DataEntry>
</Info>

...more elements

</Company>
</RevenueInfo>
</Offices>
</Companies>

我需要能够根据用户输入更新文档中的任何值,并使用更新后的信息创建一个新的 XML 文件。用户将传递 BranchId、要更新的元素的名称以及它的顺序号(如果元素多次出现)(例如,对于 EntryId 12345,用户将传递 373287734 EntryId=1 010101 )

我一直在研究 JAXB,但为这种 XML 创建模型类似乎需要付出相当大的努力,但它似乎也可以使打印到文件和定位要更新的元素变得更加容易。

Dom4j 似乎也有不错的性能结果,但不确定解析如何。

我的问题是,在这种情况下,JAXB 是最好的方法吗?或者您能否建议一种更好的方法来解析这种类型的 XML?

最佳答案

根据我的经验,JAXB 只有在模式简单且稳定时才能正常工作。在其他情况下,您最好使用通用树模型。 Java 世界中的主要泛型模型有 DOM、JDOM2、DOM4J、XOM、AXIOM。我自己的偏好是 JDOM2 和 XOM; DOM4J 在我看来过于复杂,而且有些过时。但这取决于您在寻找什么。

但是,您描述的应用程序看起来是“XML 端到端”或 XRX 方法的理想候选者 - XForms、XSLT、XQuery、XProc。您根本不需要 Java。

关于java - Dom4j 与 JAXB 比较,用于读取和更新大型复杂的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976824/

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