转义大型XML文件中的字符

时间:2009-11-29 22:58:33

标签: xml parsing

我有100个MB的大型XML文件。

是否有任何实用程序可以解析XML文件并转义字符串中的特殊字符,而无需立即将整个文件打开到内存中?

由于

3 个答案:

答案 0 :(得分:2)

在Java中,不要使用DOM。使用SAX或StaX。如果不是在Java中,您仍然可以使用SAX与MSXML或Expat。

答案 1 :(得分:1)

以下c ++程序逐字节复制文件,并且使用的内存非常少(这使得它有点慢)。 您可以通过不刷新常常的文件来提高性能。

// copy a file using associated buffer's members
#include <fstream>
using namespace std;

int main () {
    char ch;
    ifstream infile;
    ofstream outfile;

    infile.open ("original.xml",std::ifstream::binary);
    outfile.open ("copy.xml",std::ofstream::binary);

    while ( !infile.eof() )
    {
        infile >> ch;
        outfile << ch;
        outfile.flush();
    }

    outfile.close();
    infile.close();

    return 0;
}

如果你想要一个unix工具,我想你可以使用sed

答案 2 :(得分:1)

如果您所做的事情非常简单,那么SAX和StAX可能会起作用,否则,VTD-XML是最好的选择

Introduction to VTD-XML