【发布时间】:2013-08-06 10:20:44
【问题描述】:
我正在寻找动态修改一个非常大的 XML 文件的标签的最佳方法。
考虑以下输入 XML:
输入
<?xml version="1.0" encoding="UTF-8"?>
<rootTag>
<dictionary>
<name>field1</name>
<address>field2</address>
<gender>field3</gender>
.
.
<postcode>field30</postcode>
</dictionary>
<records>
<record>
<field id="field1">John</field>
<field id="field2">Svalbard</field>
<field id="field3">M</field>
.
.
<field id="field30">12345</field>
</record>
.
.
<record>
.
.
</record>
</records>
</rootTag>
XML 文件在顶部包含一个字典和一大块记录节点,它们的标签链接到字典。
我想将每个记录节点中的 标签 替换为字典中对应的值。因此,输出应如下所示:
输出
<?xml version="1.0" encoding="UTF-8"?>
<rootTag>
<records>
<record>
<name>John</name>
<address>Svalbard</address>
<gender>M</gender>
.
.
<postcode>12345</postcode>
</record>
.
.
<record>
.
.
</record>
</records>
</rootTag>
请记住,<record> 节点数量巨大,在 Java 中实现这种转换的最佳方法是什么?
请注意,我只想更改标签而不是属性。
【问题讨论】:
-
如果你说你想在一条很宽的河上建一座桥,我希望任何有能力的工程师都会问你有多宽是很宽的?答案取决于:100Mb 的解决方案可能与 10Gb 的解决方案不同。
-
公平点。我说的是多个大约 200 MB 大小的 XML 文件。
-
现在可以在内存中处理 200Mb,但已接近极限,因此如果有可能会变得更大,您可能需要考虑流技术。