解析XML报错 根级别上的数据无效。 第 1 行,位置 1。

问题描述

通过接口获取到返回的字符串OutStr:<?xmlversion="1.0"encoding="utf-8"?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>

解析时用XmlDocumentdoc=newXmlDocument();doc.LoadXml(OutStr.Trim());调试到doc.LoadXml(OutStr.Trim());已报错。错误内容:根级别上的数据无效。第1行,位置1。想请问问题出在哪里了?

解决方案

解决方案二:
stringxml=@"<?xmlversion=""1.0""encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>";XElementroot=XElement.Parse(xml);vare=root.Element("Result");XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml);

两个都没问题……
解决方案三:
stringxml=@"<?xmlversion=""1.0""encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>";XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml.Trim());XElementroot=XElement.Parse(xml);//异常vare=root.Element("Result");

试着在前面加了个换行,异常了,你加个Trim试下,估计有换行吧
解决方案四:
引用1楼starfd的回复:

stringxml=@"<?xmlversion=""1.0""encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>";XElementroot=XElement.Parse(xml);vare=root.Element("Result");XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml);

两个都没问题……

返回的内容直接复制写进字符串里,就可以解析。。可是直接用返回的却不能解析,为什么么?
解决方案五:
引用2楼starfd的回复:

stringxml=@"<?xmlversion=""1.0""encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>";XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml.Trim());XElementroot=XElement.Parse(xml);//异常vare=root.Element("Result");

试着在前面加了个换行,异常了,你加个Trim试下,估计有换行吧

已经加了trim的程序里这么写的doc.LoadXml(OutStr.Trim());
解决方案六:
xml.Trim('r','n').Replace(System.Environment.NewLine,string.Empty)

看你反正也没系统换行在里面,直接这样狠点的
解决方案七:
LoadXml从字符串读取xml;Load加载xml文件。
解决方案八:
引用3楼ajo413的回复:

返回的内容直接复制写进字符串里,就可以解析。。可是直接用返回的却不能解析,为什么么?

可以写个方法把它显示出来看下或者直接和字符串版对比一下,不过既然字符串可以解析,你就多写个方法转成字符串吗,几行代码就行了
解决方案九:
引用7楼Imcx_的回复:

Quote: 引用3楼ajo413的回复:
返回的内容直接复制写进字符串里,就可以解析。。可是直接用返回的却不能解析,为什么么?

可以写个方法把它显示出来看下或者直接和字符串版对比一下,不过既然字符串可以解析,你就多写个方法转成字符串吗,几行代码就行了

要怎么做引用5楼starfd的回复:

xml.Trim('r','n').Replace(System.Environment.NewLine,string.Empty)

看你反正也没系统换行在里面,直接这样狠点的

还是不行呢后来调试应该是接口返回的字符串有问题。看起来同样的字符串1.stringOutStr="<Response><Result>0</Result><Message>-1</Message><ArgToken>78108770</ArgToken></Response>2.stringOutStr="<Response><Result>0</Result><Message>-1</Message><ArgToken>78108770</ArgToken></Response>"1是接口返回的字符串,2是拷贝到txt后再考回来的字符串,2可以解析,1解析不了
解决方案十:
再给个绝招,你找?>这个的位置,从这个后面开始截取字符串
解决方案十一:
可以问一下你的用什么方式收到xml吗
解决方案十二:
你先把收到的字符串输出到txt里,看到底是什么,是否多了回车,少了空格之类的
解决方案十三:
stringxml=@"<?xmlversion=""1.0""encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>";xml=xml.Substring(xml.IndexOf('<'));Console.WriteLine(xml);XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml);

这个我用的是你问题里提供的,这样子后是可以了,正则替换居然匹配不到第一个尖括号之前的东西,神了奇了
解决方案十四:
你直接把:<?xmlversion=""1.0""encoding=""utf-8""?>去掉

时间: 2024-10-28 10:00:38

解析XML报错 根级别上的数据无效。 第 1 行,位置 1。的相关文章

unity3d-Unity3D 实时解析XML时报错

问题描述 Unity3D 实时解析XML时报错 获取网络时间: IEnumerator GetTime() { WWW www = new WWW(timeURL); while (!www.isDone) { yield return www; Debug.Log("Doneeeeeeeeeeeeee" + www.text); ParseXml(www); } }` 后得到:` <?xml version="1.0" encoding="GB23

tomcat-inputStream解析url报错:UnKnownHostException:xxx.com

问题描述 inputStream解析url报错:UnKnownHostException:xxx.com 原文已发布在android论坛,但是没人回应,悬赏了100没人理我. 原文链接:http://bbs.csdn.net/topics/390566835?page=1#post-395413355 程序很简单: main里: String urlString = "http://ftp121455.host181.web522.com/daoyutwo.txt"; InputStr

android-一段很简单的代码 Eclipse没有报错 可是手机上一点按钮就意外停止

问题描述 一段很简单的代码 Eclipse没有报错 可是手机上一点按钮就意外停止 (http://img.ask.csdn.net/upload/201505/31/1433054546_331226.png) 和书上对比了好多次了-.- 第一个 ```package com.example.ex04_01; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import a

android-Android项目里res/values有一个drawables.xml报错?怎么解决

问题描述 Android项目里res/values有一个drawables.xml报错?怎么解决 解决方案 在Eclipse 中 Clean 下试试~ 解决方案二: 鼠标移到x那里看是什么错误 解决方案三: clean一下就好了 解决方案四: clean一下就好了 解决方案五: 同楼上,clean一下 解决方案六: 难道是因为没有值么.. 解决方案七: values下需要写drawables这个文件吗?drawable不是都放在res/drawable...里吗?把这个文件删了吧 解决方案八:

网上下载的android项目导入错误,styles.xml报错怎么解决?

问题描述 网上下载的android项目导入错误,styles.xml报错怎么解决? 解决方案 AppCompat这类主题需要导入support v4库 解决方案二: android 导入项目报错---------------------- 解决方案三: 这是由于你没有这个style,你可以将别的正常项目的一个style名称拷贝过来,覆盖一下就可以了 解决方案四: 一般都是用的版本不同造成的问题.可以把你以前正确的项目下的value文件复制过来即可 解决方案五: 把鼠标放到报错的地方,查看错误详情

svn-Myeclipse10 Maven pom.xml报错

问题描述 Myeclipse10 Maven pom.xml报错 我电脑上面有eclipse和MyEclipse都有,在eclipse中重SVN上面下载项目没有错!但是在MyEclipse中下载下来pom.xml就报错~! 报错: Project build error: Non-resolvable parent POM: Could not find artifact com.ifec.blueair:blueair-packagemanager:pom:0.0.1-SNAPSHOT and

git-关于版本的问题,如maven的pom.xml报错,你如果判断是版本问题导致的。

问题描述 关于版本的问题,如maven的pom.xml报错,你如果判断是版本问题导致的. 1:我觉得版本就是类似于svn和cvs,git那种版本记录的工具,可以记录每次项目的代码更改,但是今天我遇到一个问题,我的项目报错,我居然想不到是可能是版本导致的,是不是我对版本的理解还有待提高. 解决方案 算你运气好,我手里面的项目 都是 maven 管理.如果 pom 报错,首先你要看 是哪里报错, 一般的 IDE 都会有提示 信息的. 关于版本问题,给你个建议,把所有的版本都放 到一个 parent

gson-Gson解析json报错。。。

问题描述 Gson解析json报错... com.google.gson.JsonParseException: The JsonDeserializer MapTypeAdapter failed to deserialized json object.在我朋友那运行没问题 ,我这运行就报这个错 解决方案 ,这是代码 解决方案二: 可是试试这种方式 : 不要用Map<String Object> 用Map<String String> Map<String String&g

web xml-spring4 web.xml报错 不知道什么问题求大神解答

问题描述 spring4 web.xml报错 不知道什么问题求大神解答 报错信息:Multiple annotations found at this line: - Attribute ""xmlns:xsi"" must be declared for element type ""web-app"". - The content of element type ""web-app""