我正在从一本书中学习Android api
,似乎没有提到stream-lined api
来处理raw xml
(阅读和写作)。他对解析的建议是XmlPullParser
,考虑到我在其他平台(尤其是api's
中被宠坏的LINQ to XML
的类型,他的例子看起来很可怕。
这是Android platform
上最好的技术吗?
显然我可以写一个包装器以避免重复的东西,但如果没有这样的东西我会感到惊讶。
此外,他甚至没有提到在代码中创建xml structures
。我有什么选择?
另一方面,熟悉Java
的任何LINQ to XML in .Net
开发者是否知道Java中的任何内容?
答案 0 :(得分:2)
嗯,我对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/library/x-android/index.html
答案 1 :(得分:2)
由于您可能不希望将任何实际大小的DOM加载到Android的内存中 - 因此,在Android中处理XML时,需要使用pull和SAX解析器。我认为投资理解SAX如何工作并编写自定义处理程序比依赖一些可能不兼容或过度浮动的通用库是值得的。我一直在使用SAX在我的应用程序中解析XML,我对速度感到非常满意(大部分时间)
答案 2 :(得分:1)
我在解析xml或xhtml方面遇到了同样的问题,并最终为我编写了一个Web服务。
Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device
您可以使用JSON传输数据,以便在设备上使用它。 这样做的好处是,您可以最大限度地减少慢速移动网络上的流量,并在不释放新的Android应用程序的情况下更改解析。
也许这对你也有用。
问候