【问题标题】:Android String contains two valuesAndroid String 包含两个值
【发布时间】:2012-05-18 14:50:03
【问题描述】:

我从 HTTP 服务器接收一个 XML 作为字符串:

HttpResponse httpResponse = httpClient.execute (httpPost);
return EntityUtils.toString (httpResponse.getEntity ());

这个字符串似乎有两个值,因为当我尝试记录它的长度时,我在 Logcat 中得到两行:

Log.d ("XML", xml.length () + "");

17:30:22.313    19712   DEBUG   XML 161
17:30:22.313    19712   DEBUG   XML 0

当我尝试使用 DOM 解析器解析这个 XML 时,我得到 org.xml.sax.SAXParseException: Unexpected end of document。

我读到过类似的东西here。我知道当我用一行代码得到两条 Logcat 行时,不是我做错了什么。可能是什么问题?

【问题讨论】:

  • 我认为这不会按原样编译。第一个右括号应该在那里吗?
  • 也许您出于某种原因收到了两个回复,其中一个是空的?
  • 我尝试记录单个 String 对象,不管收到多少响应。

标签: java android xml string http


【解决方案1】:

不应该是xml.length而不是xml).length吗?

这可以解释 logcat,但不能解释解析失败...

【讨论】:

  • 很抱歉造成混淆 - 我尝试记录 new String (xml).lenght () 并没有正确编辑它。我将编辑问题。
【解决方案2】:

2 个左括号,3 个右括号,正如另一条评论所说,它不会编译。可能你错误​​地引用了代码。第二个长度,0,可能来自“”。由于 logcat 显示了两个日志,因此您可能有一个 Log.d 行,其中少了一个 ),这两行一起产生了奇怪的结果。

【讨论】:

    【解决方案3】:

    以与解析 XML 相同的方法请求 XML,而不是通过方法参数传递 XML 字符串解决了该问题。我使用了完全相同的代码,只是将其移至另一种方法。这似乎是一些奇怪的 Android 或 NetBeans 错误。

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 1970-01-01
      • 2017-03-08
      • 2018-12-30
      • 2023-04-01
      • 2019-12-11
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      相关资源
      最近更新 更多