从请求返回xml获取单个值的最佳方法?

时间:2014-02-01 01:26:22

标签: java android xml performance

我有一个Android应用,并希望从xml结果集中获取特定值,我从请求到api。我将发出多个请求,这是唯一返回xml的请求。

以下是xml结果:

https://mcxnow.com/orders?cur=WDC

我如何获得'Doc>的价值?历史> O [0]>在Java for Android中尽可能高效地将p'作为字符串?

我看过Sax XML解析器,但这似乎有些过分。我应该使用哪些轻量级的东西?我应该使用什么,以及如何只获得1个值?

1 个答案:

答案 0 :(得分:1)

  

我看过Sax XML解析器,但这似乎有些过分。我应该使用哪些轻量级的东西?我应该使用什么,以及如何只获得1个值?

我打算建议您使用SAX解析器!


问题在于,在性能方面唯一明显更“轻量级”的是模式匹配;即基本上忽略XML语法/语法,并使用正则表达式或等效函数来删除所需的数据。

使用模式匹配而不是正确的XML解析的问题是您的代码可能很脆弱:

  • 如果隐含的XML架构发生变化,它可能会以不可预测/不可检测的方式中断。

  • 它可能会因格式化XML的方式变化而以不可预测/不可检测的方式中断;例如不重要的空白,意外顺序的属性等等。

  • 如果价值以合法但意想不到的方式编码,则可能会以不可预测/不可检测的方式中断。

如果你设计你的正则表达式以应对这些事情,它们会变得更复杂,模式匹配性能下降。