Android XML - сохранение фрагментов текста во время парсинга - PullRequest
0 голосов
/ 08 августа 2010

Я анализирую большой XML-документ, используя pull-анализатор (org.xmlpull.v1.XmlPullParser).Когда я достигаю определенного узла, я хочу взять его и все его дочерние элементы как кусок текста (или просто дочерние элементы тоже в порядке) и сохранить как String.Каков был бы эффективный способ достижения этого?Что-нибудь лучше (в сущности) buffer.append('<').append(xpp.getName()).append('>')?

Вот пример

<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>

PS Если вы считаете, что мне лучше использовать какой-то другой парсер или технику, я открыт для предложений,Как примечание: эти текстовые блоки будут сериализованы в БД с предпосылкой, что в какой-то момент они будут извлечены и проанализированы

1 Ответ

1 голос
/ 08 августа 2010

Я подозреваю, что ваши append() звонки настолько хороши, насколько это возможно.Это все отдельные события в парсере по запросу.

Если это ресурс XML, рассмотрите возможность использования строковых ресурсов.Я знаю, что для Android 1.6+ они могут содержать легкую разметку HTML, и, может быть, они могут содержать произвольную разметку, просто обрабатывается как строка - не пробовал.Или создайте сырые ресурсы для содержимого каждого узла и считайте все это в виде строки.

...