我正在使用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,前提是在某些时候这些将被提取和解析
答案 0 :(得分:1)
我怀疑你的append()
电话一样好。这些是拉解析器中的每个单独事件。
如果这是XML资源,请考虑使用字符串资源。我知道对于Android 1.6+,它们可以包含轻量级HTML标记,并且它们可能包含任意标记,只是被视为字符串 - 没有尝试过。或者,为每个节点的内容创建原始资源,并以字符串形式读取整个内容。