Android的XML解析异常一下子
我的代码是昨天做工精细,但我今天再次启动,并正在错误Android的XML解析异常一下子
org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: not well-formed (invalid token)
存在问题的XML没有任何时髦的人物。它存储在一个名为“xml”的字符串变量中。公平地说,我真的不知道该如何处理这个问题,而只是开始一些教程,但这是我的尝试。
out = new PrintWriter(mySocket.getOutputStream(), true);
BufferedReader br = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "US-ASCII"));
InputStream is = mySocket.getInputStream();
...
String xml = the stuff that was read in with br.read();
...
SAXParserFactory saxPF = SAXParserFactory.newInstance();
SAXParser saxP = saxPF.newSAXParser();
XMLReader xmlR = saxP.getXMLReader();
DataHandler myDataHandler = new DataHandler();
xmlR.setContentHandler(myDataHandler);
xmlR.parse(new InputSource(new StringReader(xml)));
myData = myDataHandler.getData();
我哪里出错了?
更新:XML与
<?xml version="1.0" standalone="yes"?>
启动,因此似乎并不认为“行1,列0”实际上有什么错。
更新2:我发现is.available()返回0 ....我如何解决这个问题?
我不确定最终会出现什么问题,但是我改变了几件事情,并让它有所作为。这是我改变了:
我改变
BufferedReader br = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "US-ASCII"));
InputStream is = mySocket.getInputStream();
到
BufferedInputStream in = new BufferedInputStream(mySocket.getInputStream());
而且我并没有包括在这个原来的问题(这是的“...”部分),但我摆脱了这种状况
if(in.available()>0)
因为它返回0,即使read()只是在没有它的情况下找到它。这可能只是一个暂时的黑客,但我需要弄清楚为什么它返回0并找到合法的修复程序...
你需要确保你指定你的编码方法。尝试:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
您总是需要定义如何编码数据,否则您将遇到问题。您还可能要更改此设置:
BufferedReader br = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "US-ASCII"));
这样:
BufferedReader br = new BufferedReader(new InputStreamReader(mySocket.getInputStream(), "utf-8"));
这里是一个伟大的文章,谈到有关规定,你是如何编码数据的重要性:
http://www.joelonsoftware.com/articles/Unicode.html
希望这有助于!
我已经有了第一行。我也改变了br线路,并没有帮助。不过谢谢。 – Kalina 2012-07-10 16:25:10
你有'encoding =“utf-8”'吗?好像你只有:''你必须在所有的xml文件中都有'encoding =“utf-8”''。否则,你会遇到问题。你还可以发布整个XML文件吗? – BlackHatSamurai 2012-07-10 16:27:09
向我们展示'xml'的内容。 (好吧,至少它的开始。) – 2012-07-10 14:37:14
我强烈怀疑你没有得到任何回应(或)回应的一部分。我会建议记录响应。 – kosa 2012-07-10 14:37:52
@GrahamBorland更新时间你需要看到更多的XML? – Kalina 2012-07-10 14:47:47