none
请教xml解析的问题! RRS feed

  • 问题

  • XML 解析出现 根级别上的数据无效

    只是偶尔出现!

    xml:

    <Root>
    <Result>0</Result>
    <i>123456</i>
    </Root>

    代码:

    string url = ".............";
    WebRequest wRequest = WebRequest.Create(url);
    WebResponse wResponse = wRequest.GetResponse();
    Stream stream = wResponse.GetResponseStream();
    StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
    string s = reader.ReadToEnd().Trim().ToString();
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.LoadXml(s);                                    
    bianh = xmldoc.SelectSingleNode("Root/i").InnerText;
    s = xmldoc.SelectSingleNode("Root/Result").InnerText;

    请各位帮忙看下代码是否合理!谢谢
    • 已移动 ThankfulHeart 2012年5月16日 2:35 XML解析问题 (发件人:Visual C#)
    2012年5月16日 2:25

答案

  • 从你的代码来看完全正确。所以我建议你放入try……catch……中(估计返回的xml有问题):

    string url = ".............";
    WebRequest wRequest = WebRequest.Create(url);
    WebResponse wResponse = wRequest.GetResponse();
    Stream stream = wResponse.GetResponseStream();
    StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
    string s = reader.ReadToEnd().Trim().ToString();
    reader.Close();
    try
    {
    XmlDocument xmldoc = new XmlDocument();
    s = s.Trim();   //去除空格
    xmldoc.LoadXml(s);                                    
    bianh = xmldoc.SelectSingleNode("Root/i").InnerText;
    s = xmldoc.SelectSingleNode("Root/Result").InnerText;
    }
    catch (Exception exp)
    {
      MessageBox.Show("xml格式不正确,无法正常解析……");
    }

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 yyyukai 2012年5月19日 2:17
    2012年5月16日 2:35
  • 你好 在加载前先判断下返回的XML是否为Empty

    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Blog http://kosmisch.net
    Chengdu,China

    • 已标记为答案 yyyukai 2012年5月19日 2:18
    2012年5月16日 16:44
    版主

全部回复

  • 从你的代码来看完全正确。所以我建议你放入try……catch……中(估计返回的xml有问题):

    string url = ".............";
    WebRequest wRequest = WebRequest.Create(url);
    WebResponse wResponse = wRequest.GetResponse();
    Stream stream = wResponse.GetResponseStream();
    StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default);
    string s = reader.ReadToEnd().Trim().ToString();
    reader.Close();
    try
    {
    XmlDocument xmldoc = new XmlDocument();
    s = s.Trim();   //去除空格
    xmldoc.LoadXml(s);                                    
    bianh = xmldoc.SelectSingleNode("Root/i").InnerText;
    s = xmldoc.SelectSingleNode("Root/Result").InnerText;
    }
    catch (Exception exp)
    {
      MessageBox.Show("xml格式不正确,无法正常解析……");
    }

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 yyyukai 2012年5月19日 2:17
    2012年5月16日 2:35
  • 你好 在加载前先判断下返回的XML是否为Empty

    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Blog http://kosmisch.net
    Chengdu,China

    • 已标记为答案 yyyukai 2012年5月19日 2:18
    2012年5月16日 16:44
    版主
  • 谢谢问题已找到!  http返回不稳定 捕捉到既然有时候返回是个1 所以解析报错!
    2012年5月19日 2:18
  • 谢谢问题已找到!  http返回不稳定 捕捉到既然有时候返回是个1 所以解析报错!
    不用谢!希望常来MSDN做客……:-)

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月19日 2:20