0

我正在使用拉解析器 ( org.xmlpull.v1.XmlPullParser) 解析大型 XML 文档。当我到达特定节点时,我想将它及其所有子节点作为文本块(或者只是子节点也可以)并保存为字符串。实现这一目标的有效方法是什么?有什么比(本质上)更好的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如果您认为我最好使用其他解析器或技术,我愿意提供建议。顺便说一句 - 这些文本块将被序列化到 db,前提是在某些时候这些文本块将被提取和解析

4

1 回答 1

1

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

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

于 2010-08-07T22:26:22.023 回答