• c# XML读取


    System.Xml 命名空间

    https://msdn.microsoft.com/zh-cn/library/gg145036(v=vs.110).aspx

    一、读取

    1.通过 XmlDocument获取稳定内容

    2.通过XmlNodeList 找到节点数据

    private void List_Click(object sender, RoutedEventArgs e)
            { 
                string xmlStr = getData();
    
                StringBuilder rtn = new StringBuilder();
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xmlStr);
                XmlNodeList xmlNodeList = xmlDoc.GetElementsByTagName("root");
                foreach (XmlNode xmlNode in xmlNodeList)
                {
                    //家长节点
                    XmlNodeList childXmlNodes1 = xmlNode.ChildNodes;
                    foreach (XmlNode childXmlNode1 in childXmlNodes1)
                    {
                        if (childXmlNode1.Name == "resultInfo")
                        {
                            //成员列表
                            XmlNodeList childXmlNodes2 = childXmlNode1.ChildNodes; 
                            
                            foreach (XmlNode childXmlNode2 in childXmlNodes2)
                            {
                                if (childXmlNode2.Name == "NAME")
                                { 
                                    rtn.Append(childXmlNode2.InnerText);
                                } 
                            }
                        } 
                    }
                }
    
    
    
            }
    private string getData() { return "<?xml version="1.0" encoding="utf-8"?>" + @" <root> <resultInfo> <NAME>姓名</NAME> <SEX>性别</SEX> <error_msg> 成功!或者error:xxx </error_msg> <remark>备注</remark> </resultInfo> </root> "; }

    读取方法扩充

    public static LoginResponse GetLoginResponse(string xmlStr)
    {
        LoginResponse response = new LoginResponse();
    
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlStr);
        
        XmlNode errorNode = xmlDoc.SelectSingleNode("//Error");
         if (errorNode != null)
         {
             response.ResultErrorCode = (errorNode.SelectSingleNode("ErrorCode")).InnerText;
             response.ResultErrorText = (errorNode.SelectSingleNode("ErrorText")).InnerText;
             response.ResultErrorDescription = (errorNode.SelectSingleNode("ErrorDescription")).InnerText;
         } 
        
        return response;
    }
    
    数据:
    <?xml version="1.0" encoding="UTF-8"?>
    <RESULT>
    <Error>
    <ErrorCode>-1</ErrorCode>
    <ErrorText>ErrorText</ErrorText>
    <ErrorDescription>ErrorDescription</ErrorDescription>
    </Error></RESULT>

    二、设置

    三、常见问题

     1.XmlDocument加载xml文件时,有中文可能会报错,提示配置错误?

    因为编码问题造成的,解决方法:

    修改XML头部为:<?xml version='1.0' encoding="GB2312"?>

  • 相关阅读:
    解决win8无法成功安装Windows Phone 7 sdk的问题
    决定专心写博,学习
    时间管理的首要原则:专注力
    Windows Phone 7 开发环境的搭建
    Windows Phone 8 开发环境的搭建
    学习使用ErrorProvider 转载
    SetTimer函数
    网络工程课程笔记
    IP地址分类及特殊IP地址
    windows消息处理机制
  • 原文地址:https://www.cnblogs.com/xcsn/p/4381195.html
Copyright © 2020-2023  润新知