Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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
如何解析来自已消费web服务Android的xml数据?_Android_Xml_Service_Xml Parsing - Fatal编程技术网

如何解析来自已消费web服务Android的xml数据?

如何解析来自已消费web服务Android的xml数据?,android,xml,service,xml-parsing,Android,Xml,Service,Xml Parsing,我有一个web服务,.asmx,它在使用时会以以下形式给出响应: <lData> <name>...</name> <posx>..</posx> <posy>...</posy> </lData> 因此,我从我的web服务中获得了正确的数据,但我不知道如何正确解析它。 我想找到一种迭代不同节点的方法 我试图使用SAXParser,但似乎不明白应该使用什么来代替url。在教程

我有一个web服务,
.asmx
,它在使用时会以以下形式给出响应:

<lData>
    <name>...</name>
    <posx>..</posx>
    <posy>...</posy>
</lData>
因此,我从我的web服务中获得了正确的数据,但我不知道如何正确解析它。 我想找到一种迭代不同节点的方法

我试图使用
SAXParser
,但似乎不明白应该使用什么来代替
url
。在教程中,我跟随了
url
上的xml文件链接,但是我的
url
只是“完成”的一部分,因为我需要先使用web服务

MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
这是我应该使用的东西,但有另一个openStream吗


谢谢你的帮助

SAXParser需要一个InputStream来解析。我想你是说你有一个要解析的xml字符串?为此,您需要将字符串转换为输入流:

InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));

你好web服务以xml形式发送数据,这样,如果我接受response.toString(),我就可以在TextView中读取它。因此,我看到它正在工作,即web服务连接。但是现在我想获取这些信息,并在以后的列表视图中使用它。我试图使用上面的方法,但为了做到这一点,我首先必须转换我的信封。getResponse();一串。我在想,也许有一种方法没有那一步?我没有让它工作,我的应用程序现在有这个“抱歉关机”错误,所以我必须仔细检查代码以找出错误。在输入流之后,我应该使用InputSource is2=新的InputSource(is);xr.parse(is2)?再次感谢!你暗示你已经把它当作一个字符串了,这就是为什么我建议这样做。我同意,一般来说,没有必要将其转换为字符串。你有什么对象类型?至于第二个问题,SAXParser有一个接受InputStream的解析方法,因此您不需要将其转换为InputSource;SAXParserFactory spf=SAXParserFactory.newInstance();SAXParser sp=spf.newSAXParser();XMLReader xr=sp.getXMLReader();MyXMLHandler MyXMLHandler=新的MyXMLHandler();xr.setContentHandler(myXMLHandler);//parse(新的InputSource(sourceUrl.openStream());对不起,我不知道如何设置这些评论框中的问题的格式。您建议我使用什么来代替inputSource(sourceURL.openStream)?
InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));