我正在从一本书中学习 Android api ,似乎没有提到 stream-lined api 来处理 raw xml (阅读写作)。他解析的建议是 XmlPullParser ,考虑到我在其他平台上被宠坏的 api的的类型,他的例子看起来很可怕( LINQ to XML 特别是)。

这是 Android平台上最好的技术吗?

显然我可以写一个包装器以避免重复的东西,但如果没有这样的东西我会感到惊讶。

此外,他甚至没有提到在代码中创建 xml结构。我有什么选择?

另外,在.Net 中熟悉 LINQ to XML的 Java 开发人员是否知道Java中的任何内容?

有帮助吗?

解决方案

由于您可能不希望将任何实际大小的DOM加载到Android的内存中 - 因此,在Android中处理XML时,需要使用pull和SAX解析器。我认为投资理解SAX如何工作并编写自定义处理程序比依赖一些可能不兼容或过度浮动的通用库是值得的。我一直使用SAX在我的应用程序中解析XML,我对速度感到非常满意(大部分时间)

其他提示

嗯,我对Java很陌生,但到目前为止,我已经收集了关于Android上xml解析的内容:

由于资源限制,建议Android使用XmlPullParser方法。 Android中有一个DOM解析器,它允许您使用XPath来导航xml文档。但是,使用DOM意味着您必须立即将整个文档加载到内存中。就使用的内存而言,XmlPullParser方法效率更高。

在熟悉LINQ to XML或XPath之后,XmlPullParser方法需要稍微习惯,但恕我直言(至少我正在解析的文档)真的不是太糟糕了。如果您正在使用小型xml文档,那么您当然可以将DOM与XPath一起使用。

这里有一篇关于使用Android读取和编写XML的不同方法的文章: http://www.ibm.com/developerworks/opensource/库/ X-机器人/ index.html中

我在解析xml或xhtml方面遇到了同样的问题,并最终为我编写了一个Web服务。

Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device

您可以使用JSON传输数据,以便在设备上使用它。 这样做的好处是,您可以最大限度地减少慢速移动网络上的流量,并在不释放新的Android应用程序的情况下更改解析。

也许这对你也有用。

问候

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top