Android XML - 在拉解析期间保存文本块

时间:2010-08-07 20:59:45

标签: android xml xmlpullparser

我正在使用pull解析器(org.xmlpull.v1.XmlPullParser)解析大型XML文档。当我到达特定节点时,我想抓住它并将其所有子节点作为文本块(或者只是孩子也可以)并保存为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>

P.S。如果您认为我最好使用其他解析器或技术,我会提出建议。正如旁注 - 这些文本块将被序列化为db,前提是在某些时候这些将被提取和解析

1 个答案:

答案 0 :(得分:1)

我怀疑你的append()电话一样好。这些是拉解析器中的每个单独事件。

如果这是XML资源,请考虑使用字符串资源。我知道对于Android 1.6+,它们可以包含轻量级HTML标记,并且它们可能包含任意标记,只是被视为字符串 - 没有尝试过。或者,为每个节点的内容创建原始资源,并以字符串形式读取整个内容。