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
  • 相关阅读:
    带不带protype的区别
    一些方法(自己的认知)
    事件
    简单笔记
    freemarker Velocity获取request,session
    Freemaker中使用中括号来包含标签
    FreeMarker自定义标签
    Velocity模版自定义标签
    前端常用代码
    Eclipse中配置Ehcache提示信息
  • 原文地址:https://www.cnblogs.com/hellocjr/p/4340265.html
Copyright © 2011-2022 走看看