通过接口获取到返回的字符串OutStr:
<?xml version="1.0" encoding="utf-8"?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>
解析时用
XmlDocument doc = new XmlDocument();
doc.LoadXml(OutStr.Trim());
调试到 doc.LoadXml(OutStr.Trim()); 已报错。
错误内容:根级别上的数据无效。 第 1 行,位置 1。
想问一下问题出在哪里了?
解决方案
10
string xml = @" <?xml version=""1.0"" encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.Trim()); XElement root = XElement.Parse(xml);//异常 var e = root.Element("Result");
试着在前面加了个换行,异常了,你加个Trim试下,估计有换行吧
10
xml.Trim("\r", "\n").Replace(System.Environment.NewLine, string.Empty)
看你反正也没系统换行在里面,直接这样狠点的
10
string xml = @" <?xml version=""1.0"" encoding=""utf-8""?><Response><Result>0</Result><Message>-1</Message><ArgToken>48374645</ArgToken></Response> "; xml = xml.Substring(xml.IndexOf("<")); Console.WriteLine(xml); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml);
这个本人用的是你问题里提供的,这样子后是可以了,正则替换居然匹配不到第一个尖括号之前的东西,神了奇了