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節點名稱,返回OK2、從上下文(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的節點,返回SUCCESSstring return_msg = resHandler.getMpParameter("return_msg"); //return_msg是xml的節點,返回OK新聞熱點
疑難解答