0

我正在寻找一种在 JAVA 中线性化 XML 的快速方法

我正在使用 ~2GB 文件,因此排除了 DOM。Java targhet 是 1.5.0.22 我必须从 xml 生成一个由 80 字节 + 换行符组成的文件。我必须将它写在一个将由 Cobol 程序读取的 DB2 表中。

在 Cobol 中,大小很重要,因为数据作为 CHAR 从表中读取,这意味着空行是 80 个空格。

我逐字节读取文件(我必须),但我可以使用内部临时缓冲来存储可能要忽略的序列

示例 5 个字节的 ascii 文件

<a><b><c>psofpisogiosigpsfiogpo</c></b></a>

<a><b
><c>p
sofpi
sogio
sigps
fiogp
o</c>
</b><
/a>

文件问题

<a>
    <b>
       <c>psofpisogiosigpsfiogpo</c>
    </b>
</a>







<a>

  <b
>


<c>ps
ofpis
ogios
igpsf
iogpo
</c>

    <
/b>

   </
a>

非线性 XML 在表中创建空行或一些未充分发挥其潜力的行。

这成为 HOST CICS 环境下的付费 cpu 周期丢失

如果我可以线性化文件,无论文件是否缩进,我都会得到相同的输出,并且 XML 保持相同的信息

任何想法?

4

1 回答 1

5
private static final String XML_LINARIZATION_REGEX = "(>|&gt;){1,1}(\\t)*(\\n|\\r)+(\\s)*(<|&lt;){1,1}";

private static final String XML_LINARIZATION_REPLACEMENT = "$1$5";

 public static String linarizeXml(String xml) {
        return (xml!= null) ? xml.trim().replaceAll(XML_LINERIZATION_REGEX, XML_LINERIZATION_REPLACEMENT) : null;
    }
于 2013-11-04T14:18:03.763 回答