读取xml格式的字符串和上下文中的xml数据_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 读取xml格式的字符串和上下文中的xml数据

读取xml格式的字符串和上下文中的xml数据

 2015/3/15 23:12:18  hellocjr  程序员俱乐部  我要评论(0)
  • 摘要:1、读取xml格式的字符串假设有一段下面的xml格式的字符串:<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>定义类ClientResponseHandler.cspublicclassClientResponseHandler
  • 标签:数据 字符串 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

 

上一篇: 计算地理位置之间的距离 下一篇: 没有下一篇了!
发表评论
用户名: 匿名