如何在Java中有效地替换XML文档中的字符?

时间:2010-05-19 12:56:13

标签: java xml utf-8 replace

我正在寻找一种简洁有效的方法来替换XML文档中的字符。有一个为大约12.000个UTF-8字符定义的替换表,其中大部分将由单个字符替换,但有些必须由两个甚至三个字符替换(例如希腊语theta应该变为TH)。文件可能很庞大(100MB +)。怎么用Java做?我提出了使用XSLT的想法,但我不太确定这是否是最佳选择。

2 个答案:

答案 0 :(得分:3)

根据我的经验,

String.replace(..)非常慢。我曾经使用该API解析100MB KML文件,性能很糟糕。然后,我使用Pattern.compile(..)预编译了正则表达式,并且运行速度更快。

答案 1 :(得分:0)

查看SAX,它允许您在传递XML文档时查看它们的每个部分。然后,您可以对文本节点执行操作并执行所需的操作。

XSLT的问题在于大多数实现都需要内存中的整个输入树,这通常是磁盘大小的10倍。我只知道撒克逊XSLT变压器的商业版,它可以做流式XSLT(但这将完美满足您的需求)。