парсеры xml не читают такие большие файлы - PullRequest
0 голосов
/ 08 февраля 2012
<?xml version="1.0"?>

<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="test">
    <table_data name="test">
    <row>
        <field name="field1">406</field>
        <field name="field2">a2</field>
        <field name="field3">16</field>
        <field name="field4"></field>
        <field name="field5" xsi:type="xs:hexBinary">
[get the content from http://122.183.130.242/file/hex.txt path because i cannot give such a large content to stackoverflow]

        </field>
        <field name="field6">16</field>
    </row>
    </table_data>
</database>
</mysqldump>

Я пытаюсь проанализировать и прочитать содержимое из вышеуказанного XML-файла.

Я использую синтаксический анализатор DOM и также пытался анализировать StAX для синтаксического анализа XML, но я не могу разобрать такой большойфайл.

Как я могу разобрать большие файлы XML?

1 Ответ

0 голосов
/ 08 февраля 2012

Используйте метод SAX Parser .parse(InputStream stream, HandlerBase handler)

Для обработчика вы используете DefaultHandler .

Для параметра 'stream' выполните следующее:

BufferedReader stream=new BufferedReader( new FileReader(String filename));

... где «имя файла», как вы уже догадались, имя вашего файла.Теперь я ожидаю, что вы знаете, как использовать DefaultHandler.В основном вы переписываете методы, которые вас интересуют. Попробуйте настроить размер буфера BufferedReader, и я думаю, что вы будете довольны результатом.

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