use*_*895 0 java xml text-processing
我正在寻找一种在JAVA中线性化XML的快速方法
我正在使用~2GB文件,因此排除了DOM.Java targhet是1.5.0.22我必须从xml生成一个由80bytes + newline组成的文件.我必须在一个将由Cobol程序读取的DB2表中编写它.
在Cobol中,重要的是大小,因为数据从表中读取为CHAR,这意味着空行为80个空格.
我读取文件字节到字节(我必须)但我可以使用内部临时缓冲来存储可能的序列以忽略
例5字节af ascii文件
<a><b><c>psofpisogiosigpsfiogpo</c></b></a>
<a><b
><c>p
sofpi
sogio
sigps
fiogp
o</c>
</b><
/a>
Run Code Online (Sandbox Code Playgroud)
问题与文件
<a>
<b>
<c>psofpisogiosigpsfiogpo</c>
</b>
</a>
<a>
<b
>
<c>ps
ofpis
ogios
igpsf
iogpo
</c>
<
/b>
</
a>
Run Code Online (Sandbox Code Playgroud)
非线性化XML在表中创建空行或某些行未充分发挥其潜力.
这成为了一个丢失的付费cpu循环unde HOST CICS环境
如果我可以线性化文件,我会得到相同的输出,如果文件是缩进的,XML保持相同的信息
任何的想法?
private static final String XML_LINARIZATION_REGEX = "(>|>){1,1}(\\t)*(\\n|\\r)+(\\s)*(<|<){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;
}
Run Code Online (Sandbox Code Playgroud)