gpt4 book ai didi

安卓 SAXParseException : Unexpected end of document

转载 作者:行者123 更新时间:2023-11-29 00:24:30 30 4
gpt4 key购买 nike

我在解析 XML 时遇到此异常,但并非总是如此。出错后当我立即重试时,它起作用了。但是为什么我有时会遇到这个错误?这也是我的代码和错误。

        StringEntity entity = new StringEntity(author, "UTF-8");        
DefaultHttpClient httpClient = new DefaultHttpClient();
SharedPreferences logIn = context.getSharedPreferences("Data", Context.MODE_PRIVATE);
HttpPost httppost = new HttpPost(logIn.getString("Url", ""));
httppost.setEntity(entity);
httppost.addHeader("Accept", "text/xml");
httppost.addHeader("Content-Type", "text/xml");
HttpResponse response = httpClient.execute(httppost);
HttpEntity r_entity = response.getEntity();
xmlRecords = EntityUtils.toString(r_entity);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlRecords));
Document doc = db.parse(is);
NodeList workItemsNode = doc.getElementsByTagName("Items");
for (int i = 0; i < workItemsNode.getLength(); i++) {

//Some Code here

}

异常

org.xml.sax.SAXParseException: Unexpected end of document at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:125) at com.mobile.syrinx.services.SynchroniseWorkItemsService.FillLists(SynchroniseWorkItemsService.java:101) at com.mobile.syrinx.services.SynchroniseWorkItemsService.doInBackground(SynchroniseWorkItemsService.java:65) at com.mobile.syrinx.services.SynchroniseWorkItemsService.doInBackground(SynchroniseWorkItemsService.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:252) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574) at java.lang.Thread.run(Thread.java:1020)

最佳答案

1) 确认您收到的是有效的 XML。如果您正在使用从网络服务提供给您的 XML,那么谁知道您得到了什么。无效的 XML 可能会导致许多此类解析器出现问题。这种情况有时只会发生,这一事实让我认为这很可能是罪魁祸首。

DocumentBuilder 文档在这里:

http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/DocumentBuilder.html#parse(org.xml.sax.InputSource)

可以看到解析xml出错时会抛出SAX异常,这意味着xml不知何故无效。应该捕获异常并进行相应处理。

2) 您正在解析的文件是否源自与您正在处理的操作系统不同的操作系统?这在过去给我带来了问题,一个 windows 文件导致 linux 系统上的解析器出错。我不认为这应该是这里的问题,但这是可能的。

关于安卓 SAXParseException : Unexpected end of document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705069/

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