org.xml.sax-6ren">
gpt4 book ai didi

android - Xml 解析错误

转载 作者:行者123 更新时间:2023-11-30 04:50:08 25 4
gpt4 key购买 nike

我在尝试通过 Android 中的 SAX 解析器解析来自 Web 服务的 Xml 响应时遇到此错误。

ERROR in LogCat :- " Response =====> org.xml.sax.InputSource@43b8e230 " 

我知道我需要转换字符串中的响应可能是通过 toString() 方法,但问题是我不知道该怎么做,因为我已经尝试了我知道的所有可能的转换方式但是什么都没发生。

在 InputSource 中,我传递了 url:-

URL url = new URL("http://www.google.com/ig/api?weather=Ahmedabad");
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xmlr = sp.getXMLReader();
DemoHandler myDemoHandler = new DemoHandler();
xmlr.setContentHandler(myDemoHandler);
xmlr.parse(new InputSource(url.openStream()));
Log.e(TAG, "Condition");
System.out.println("Response ====> " + new InputSource(url.openStream().toString()));
ParsedDemoData parsedDemoData = myDemoHandler.getParsedData();

一切正常,但我收到的响应需要转换为字符串,我不知道该怎么做。

任何人都可以帮忙吗

谢谢,大卫

最佳答案

要解析 InputStream,您不必将其转换为字符串,您可以使用 Android 上可用的解析器直接读取其元素和属性。您可以引用以下链接来做同样的事情

http://www.ibm.com/developerworks/opensource/library/x-android/index.html

http://www.anddev.org/parsing_xml_from_the_net_-_using_the_saxparser-t353.html

如果你正在寻找一个将输入流转换为字符串的代码,那么像这样的东西会起作用吗

 public String convertStreamToString(InputStream is) throws IOException {
/*
* To convert the InputStream to String we use the BufferedReader.readLine()
* method. We iterate until the BufferedReader return null which means
* there's no more data to read. Each line will appended to a StringBuilder
* and returned as String.
*/
if (is != null) {
StringBuilder sb = new StringBuilder();
String line;

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
} finally {
is.close();
}
return sb.toString();
} else {
return "";
}
}

这应该会为您打印流

System.out.println("Response ====> " + convertStreamToString(url.openStream()));

关于android - Xml 解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3740542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com