首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

c# 读取xml 数据接口

2012-04-09 
c# 读取xml 数据接口 求助xml 结构:search_resultq王石 OR 万科/qpg1/pgitem10/itemtotal

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 是不是你要的数据。

热点排行