我有一个Android应用,并希望从xml结果集中获取特定值,我从请求到api。我将发出多个请求,这是唯一返回xml的请求。
以下是xml结果:
https://mcxnow.com/orders?cur=WDC
我如何获得'Doc>的价值?历史> O [0]>在Java for Android中尽可能高效地将p'作为字符串?
我看过Sax XML解析器,但这似乎有些过分。我应该使用哪些轻量级的东西?我应该使用什么,以及如何只获得1个值?
答案 0 :(得分:1)
我看过Sax XML解析器,但这似乎有些过分。我应该使用哪些轻量级的东西?我应该使用什么,以及如何只获得1个值?
我打算建议您使用SAX解析器!
问题在于,在性能方面唯一明显更“轻量级”的是模式匹配;即基本上忽略XML语法/语法,并使用正则表达式或等效函数来删除所需的数据。
使用模式匹配而不是正确的XML解析的问题是您的代码可能很脆弱:
如果隐含的XML架构发生变化,它可能会以不可预测/不可检测的方式中断。
它可能会因格式化XML的方式变化而以不可预测/不可检测的方式中断;例如不重要的空白,意外顺序的属性等等。
如果价值以合法但意想不到的方式编码,则可能会以不可预测/不可检测的方式中断。
如果你设计你的正则表达式以应对这些事情,它们会变得更复杂,模式匹配性能下降。