c# 读取xml 数据接口 求助
xml 结构:
<search_result>
<q>王石 OR 万科</q>
<pg>1</pg>
<item>10</item>
<total>20</total>
<result>
<id>127692313</id>
<title>zfXKr7P219/N8r/Gus7IpbrOtNM=</title>
<abstract>s8m9u7buyPTE3NPQ0Ke3xbTzo6zWuMr9v8nE3NTa0vjQ0LXEtPi2r8/Cs+XGxsewuN+how==</abstract>
<url>http://tv.hexun.com/2011-03-03/127692313.html</url>
<bigPic>http://img.hexun.com/2011-03-03/127692315.jpg</bigPic>
<smallPic>http://img.hexun.com/2011-03-03/127692315_125x110.jpg</smallPic>
<columName>78/vz7uwucnK0A==</columName>
</result>
</search_result>
读取xml 函数:
private XmlDocument getXml(string url)
{
try
{
Uri uri = new Uri(url);
WebRequest myReq = WebRequest.Create(uri);
myReq.ContentType = "text/xml";
//myReq.Timeout = 2000;
myReq.Timeout = 4000;
//myReq.Timeout = 200;
WebResponse myRes = myReq.GetResponse();
Stream resStream = myRes.GetResponseStream();
StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding("gb2312"));
string rl = sr.ReadToEnd().Trim(new char[] { '\r', '\n' });
//string rl = sr.ReadToEnd();
rl = System.Text.RegularExpressions.Regex.Replace(rl, "[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "");
//rl = rl.Replace("GBK", "gb2312");
//byte[] bs = System.Text.Encoding.Default.GetBytes(content);
sr.Close();
resStream.Close();
myRes.Close();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(rl);
return xmldoc;
}
catch (Exception ex)
{
ex.Message.ToString();
return null;
}
}
问题出来了
读取xml 只能读到
<search_result>
<q>王石 OR 万科</q>
<pg>1</pg>
<item>10</item>
<total>20</total>
</search_result>
result 没有啊 我在别的项目里 都是这样读取的啊! 这个xml 唯独不一样的 就是这个格式是gbk的 但是这是接的别处的接口 没法改
在线等 大家帮忙
[解决办法]
我认为不是XML处理的问题,而是你返回的消息不完整
WebResponse myRes = myReq.GetResponse();
Stream resStream = myRes.GetResponseStream();
StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding("gb2312"));
检查一下 sr 是不是你要的数据。