Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上使用SAX解析不同的XML文件?_Android_Xml_Parsing_Sax - Fatal编程技术网

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

如何在Android上使用SAX解析不同的XML文件?,android,xml,parsing,sax,Android,Xml,Parsing,Sax,我有下面的场景 我向服务器发送一个XML文件作为请求,得到一个XML文件作为响应,所有这些都作为Android上的后台线程 XML请求使用各种值进行序列化。然后,SAX读取XML响应并将其放入列表中。整个请求/响应过程使用AsyncTask类在后台线程中进行 问题是我有不同类型的响应,我不知道应该采取什么方法来基于发送的请求解析响应 我如何告诉Android使用基于请求A的解析器A和基于请求B的解析器B 编辑:对于不同类型的响应,我的意思是XML文件看起来不同。它有不同的标记和不同的属性。如果都

我有下面的场景

我向服务器发送一个XML文件作为请求,得到一个XML文件作为响应,所有这些都作为Android上的后台线程

XML请求使用各种值进行序列化。然后,SAX读取XML响应并将其放入列表中。整个请求/响应过程使用
AsyncTask
类在后台线程中进行

问题是我有不同类型的响应,我不知道应该采取什么方法来基于发送的请求解析响应

我如何告诉Android使用基于请求A的解析器A和基于请求B的解析器B


编辑:对于不同类型的响应,我的意思是XML文件看起来不同。它有不同的标记和不同的属性。

如果都是消息响应对象,请指定要指示的属性以及xml响应中的对象类型

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

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

以下是我看到的选项:

  • 您可以基于请求(应该有某种上下文)来建立解析功能。如果您知道请求是类型A,那么您知道响应必须使用解析器A
  • 您可以为所有类型使用通用解析器,并根据第一个已知的标记或属性来分支解析器中发生的事情,该标记或属性指示应该执行的操作
  • 先解析,后分析。获取所有响应元素,并从中构建对象或对象图。传递它们,如果应用程序需要的话,对它们进行修改(不要试图编辑xml——毕竟您正在解析它,并且希望尽快完成)

  • 祝你好运

    我唯一的问题是我不能修改XML。然后解析XML以获得特定的区别,然后根据该值对代码进行分支。谢谢您的回答。你最后的选择似乎很有趣。有没有办法使用SAX解析器实现这一点?当然,任何开始/结束元素事件都可以用来描绘对象边界。