【发布时间】:2014-12-12 12:09:02
【问题描述】:
我必须使用 XmlPullParser(因为我们使用 Smack XMPP 库)。 但是用它解析 XML 并将读取的值放入 bean 是非常不方便的(至少在给定 XSD 的情况下)。相比之下,JAXB 会更容易使用。
对于序列化,手动连接字符串是一种“老式且容易出错的方法”。 (请参阅http://babbler-xmpp.blogspot.co.at/2014_01_01_archive.html 的动机,其中也总结了缺点)。
但要使用 JAXB 进行反序列化,我必须获取原始 XML-String。
当然,一种方法是使用 XmlPullParser 的解析方法(如getName()、getText()、getAttributes(),...)重建整个 XML-String。但我想避免这种情况。
那么是否有可能获取特定标记的整个原始 XML 字符串(例如 XmlPullParser 当前指向的位置)?或者有谁知道一些重建 XmlPullParser 实例的 XML 的实用程序?
【问题讨论】:
-
您正在向 XmkPullParser 传递一些 Reader?为什么不简单地把所有东西都读两遍呢?并且:如果您想使用 JAXB 来创建 POJO 层次结构:拉解析 XML 的目的是什么?
-
问题是,我无法访问代表原始 XML 流的 Reader。只有 XmlPullParser 从框架 (Smack) 传递到我的自定义扩展。
标签: java xml jaxb xmlpullparser