Я разбираю большой XML-документ с помощью парсинга pull (org.xmlpull.v1.XmlPullParser
). Когда я добираюсь до определенного узла, я хочу его захватить, а все его дети - как часть текста (или просто дети тоже ОК) и сохранить как String. Что было бы эффективным способом достижения этого? Что-нибудь лучше (по существу) buffer.append('<').append(xpp.getName()).append('>')
?Android XML - сохранение кусков текста во время разбора тяги
Вот пример
<root id="root">
<node>
<grab-all-inside>
<!-- bunch of nodes, attributes etc. that needs to be saved as text -->
</grab-all-inside>
</node>
<node>
<grab-all-inside>
<!-- bunch of nodes, attributes etc. that needs to be saved as text -->
</grab-all-inside>
</node>
<node>
<grab-all-inside>
<!-- bunch of nodes, attributes etc. that needs to be saved as text -->
</grab-all-inside>
</node>
</root>
P.S. Если вы думаете, что мне лучше использовать какой-либо другой парсер или технику, я открыт для предложений. Так же, как примечание - эти текстовые фрагменты будут сериализованы в db с предположением, что в какой-то момент они будут извлечены и проанализированы.
У меня есть поддержка 1.5 - это все равно около 12% трафика моего приложения в соответствии с Flurry. Я получаю фид как XML, синтаксический анализ является тривиальным, но довольно привлекательным. Я хочу получить ограниченное количество обновлений, и у меня возникает ощущение, что вместо обезьяны с сохранением связки объектов в кучу таблиц мне лучше сэкономить кусок текста в один столбец, а затем переупаковать его с использованием той же самой процедуры. Но это убивает меня, чтобы думать, что мне нужно перекомпилировать фрагмент XML из частей, когда он легко доступен. – Bostone
Yep - закончил с использованием буферизации, спасибо Mark – Bostone