Как извлечь большой список символов из файла XML в Java - PullRequest
0 голосов
/ 20 июля 2011

У меня большой xml-файл, и я не хочу его анализировать, я просто хочу сохранить каждый отдельный символ между <information>...</information>, которые являются тегами внутри xml-файла.

Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 20 июля 2011

Если проблема заключается в том, что данные, которые вы пытаетесь извлечь, уместятся в память, а весь XML-файл - нет, используйте потоковый анализатор, например XPP .

1 голос
/ 20 июля 2011

Вы не можете точно найти символы в элементе <information> без анализа файла. Вы могли бы сделать что-то, что работает в 99% случаев, но оно сломалось бы, если бы кто-то сделал то, чего вы не ожидали, например, вставил пробел в начальный тег, или закомментировал элемент <information>, или поместил часть <information> элемент во внешнем объекте.

Укус пули. Если это XML, вам нужен анализатор XML для его чтения.

0 голосов
/ 21 июля 2011

Учитывая, что вы не хотите использовать парсер, и вы просто заинтересованы в извлечении всех символов между двумя тегами, я бы скорее предложил вам извлечь содержимое XML в виде строки и использовать простое совпадение регулярного выражения для извлечениячасть между двумя тегами.

0 голосов
/ 20 июля 2011

Возможно, вы захотите объяснить, почему вы не хотите анализировать его, поскольку это поможет предложить другие решения.

При этом, если вы можете создать XPath для этого узла, вы всегда можете получить эту информацию с помощью XPath. См. этот урок .

ОБНОВЛЕНИЕ

Учитывая новую информацию, это не то решение, которое вам нужно. Если вы хотите рассматривать xml как строку, лучше всего читать ее в StringBuilder (более быстрая, небезопасная версия StringBuffer). Если у вас возникли проблемы с использованием StringBuffer, пожалуйста, опубликуйте код, который вы пробовали, и сообщения об ошибках. Максимальный размер java.lang.Integer.MAX_VALUE 2147483647.

...