Экранирование символов в больших файлах XML - PullRequest
1 голос
/ 30 ноября 2009

У меня есть большие XML-файлы размером 100 с МБ.

Существуют ли какие-либо утилиты, которые могут анализировать файлы XML и экранировать специальные символы в строках, не открывая весь файл в памяти сразу?

Спасибо

Ответы [ 3 ]

2 голосов
/ 30 ноября 2009

В Java не используйте DOM. Используйте SAX или StaX. Если не в Java, вы все равно можете использовать SAX либо с MSXML, либо с Expat.

1 голос
/ 30 ноября 2009

SAX и StAX могут работать, если все, что вы делаете, очень просто, в противном случае VTD-XML - лучший выбор

Введение в VTD-XML

1 голос
/ 30 ноября 2009

Следующая программа на языке 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...