如何在Android上使用SAX解析不同的XML文件?

问题描述:

我有以下情况。如何在Android上使用SAX解析不同的XML文件?

我将XML文件作为请求发送到服务器,并获取XML文件作为响应,并将所有这些文件作为Android上的后台线程。

使用各种值对XML请求进行序列化。 XML响应由SAX读取并放入列表中。整个请求/响应过程发生在使用AsyncTask类的后台线程中。

问题是我有不同类型的响应,我不知道根据发送的请求来解析响应的方法。

如何让Android根据请求B使用基于请求A和解析器B的解析器A?

编辑:随着不同类型的答复我的意思是XML文件看起来不同。它有不同的标签和不同的属性。

这里的属性,用于指示和对象类型的选项,因为我看到他们:

  1. 您可以基于解析基于请求的能力(应该有某种上下文)。如果您知道请求是类型A,那么您知道响应必须使用分析器A.
  2. 您可以为所有类型分配通用分析器,并根据第一个已知标记或属性指示分支器中发生应该做什么。
  3. 先解析后分析。采取所有响应元素,并从中构建对象或对象图。如果需要为你的应用程序传递它们(不要尝试编辑xml - 你最终解析它,并且你希望它尽快完成)。

祝你好运!

+0

感谢您的回答。你最后的选择似乎很有趣。有没有办法使用SAX解析器来实现这一点? – 2010-08-27 17:08:16

+0

当然,任何开始/结束元素事件都可以用来描绘对象边界。 – Nate 2010-09-02 13:28:53

的都是消息响应对象,指定要在XML响应

<response> 
<error/> 
<data type="A"> 
</data> 
</response> 

<response> 
<error/> 
<data type="B"> 
</data> 
</response> 
+0

我唯一的问题是我无法修改XML。 – 2010-08-27 12:39:24

+0

然后解析xml以获取特定的差异性,然后在该值上分支代码。 – 2010-08-27 13:47:36