zoukankan      html  css  js  c++  java
  • 读取xml格式的字符串和上下文中的xml数据

    1、读取xml格式的字符串

    假设有一段下面的xml格式的字符串:

     <xml>
         <return_code><![CDATA[SUCCESS]]></return_code>
         <return_msg><![CDATA[OK]]></return_msg>
     </xml>


    定义类ClientResponseHandler.cs

    public class ClientResponseHandler
    {
          protected Hashtable xmlMap;
           /* 设置xml字符串 */
            public virtual void setContent(string content)
            {
                this.content = content;
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(content);
                XmlNode root = xmlDoc.SelectSingleNode("xml");
                XmlNodeList xnl = root.ChildNodes;
    
                foreach (XmlNode xnf in xnl)
                {
                    xmlMap.Add(xnf.Name, xnf.InnerText);
                }
            }
            
             /* 设置xml字符串 */
            public virtual void setContent(string content)
            {
                this.content = content;
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(content);
                XmlNode root = xmlDoc.SelectSingleNode("xml");
                XmlNodeList xnl = root.ChildNodes;
    
                foreach (XmlNode xnf in xnl)
                {
                    xmlMap.Add(xnf.Name, xnf.InnerText);
                }
            }
    
    }

    调用:

     rescontent = "";  //假设这里是一段xml格式的字符串
    ClientResponseHandler resHandler = new ClientResponseHandler();
    resHandler.setContent(rescontent);
    string return_code = resHandler.getMpParameter("return_code"); //return_code是xml节点名称,返回SUCCESS
    string return_msg = resHandler.getMpParameter("return_msg"); //return_code是xml节点名称,返回OK

    2、从上下文(Context)读取xml文件流

    假设上下文中(Context)包含一段xml的字符串文件流,同上面格式。

     public class ResponseHandler
    {
        private Hashtable xmlMap;
        
       public ResponseHandler(HttpContext httpContext)
        {
            if (this.httpContext.Request.InputStream.Length > 0)
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(this.httpContext.Request.InputStream);//这里与上面不同
                XmlNode root = xmlDoc.SelectSingleNode("xml");
                XmlNodeList xnl = root.ChildNodes;               
                foreach (XmlNode xnf in xnl)
                {                    
                    xmlMap.Add(xnf.Name, xnf.InnerText);
                }
            }
        }
    
      /* 获取参数值 */
        public string getMpParameter(string parameter)
        {
            string s = (string)xmlMap[parameter];
            return (null == s) ? "" : s;
        }
    }

    调用:

     ResponseHandler resHandler = new ResponseHandler(Context);//Context 是HttpContext
     string return_code = resHandler.getMpParameter("return_code"); //return_code是xml的节点,返回SUCCESS
    
    string return_msg = resHandler.getMpParameter("return_msg"); //return_msg是xml的节点,返回OK
  • 相关阅读:
    SQL Server 2005 Integration Services (SSIS)数据源之MySQL
    SQL Server 2005 Integration Services (SSIS)数据源之Sybase
    oracle10g 监听服务无法启动
    创建一个People类型,有年龄、工资、性别三个属性。 定义一个方法叫做找对象,找对象方法传过来一个人;
    基于组件的C#农历算法
    ASP.NET中实现中文简/繁体自动转换的类
    最牛的QQ资料
    单一登陆(Single Signon)问题
    Smart Client Case Study Source Code Download from MSDN China
    简历制作 | 论文资源 | 考试认证 | 招聘求职 | 文学艺术 | 外语学习
  • 原文地址:https://www.cnblogs.com/hellocjr/p/4340265.html
Copyright © 2011-2022 走看看