一、前言
很多时候也可以直接在XML文件中配置好节点,在程序需要用到的时候,修改XML文件并不需要重新编译,这里是在极光推送中拿出来的一部分代码。代码简单,大家直接看例子吧。
二、实现过程
1.新创建一个AppKey.xml
<?xml version="1.0" encoding="utf-8" ?> <root> <JPushKeyList> <PushKey> <AppKey>1111</AppKey> <MasterSecret>2222</MasterSecret> </PushKey> <PushKey> <AppKey>333</AppKey> <MasterSecret>444</MasterSecret> </PushKey> <PushKey> <AppKey>555</AppKey> <MasterSecret>666</MasterSecret> </PushKey> </JPushKeyList> <EngJPushKeyList> </EngJPushKeyList> </root>
2.获取PushKey的List集合方法
private static List<PushServer.JPushKey> PushKeyListGet() { List<PushServer.JPushKey> jPushKeyList = new List<PushServer.JPushKey>(); //string xmlFilePath = HttpRuntime.AppDomainAppPath + "AppKey.xml"; string xmlFilePath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "AppKey.xml"); XmlNodeList nodeList; nodeList = Utility.XMLHelper.GetXmlNodeListByXpath(xmlFilePath, "/root/JPushKeyList/PushKey"); foreach (XmlNode n in nodeList) { string strAppKey = n.SelectSingleNode("AppKey").InnerXml; string strMasterSecret = n.SelectSingleNode("MasterSecret").InnerXml; PushServer.JPushKey key = new PushServer.JPushKey(strAppKey, strMasterSecret); jPushKeyList.Add(key); } return jPushKeyList; }
3. 选择匹配XPath表达式的节点列表XmlNodeList
/// <summary> /// 选择匹配XPath表达式的节点列表XmlNodeList. /// </summary> /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param> /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名")</param> /// <returns>返回XmlNodeList</returns> public static XmlNodeList GetXmlNodeListByXpath(string xmlFileName, string xpath) { XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(xmlFileName); //加载XML文档 XmlNodeList xmlNodeList = xmlDoc.SelectNodes(xpath); return xmlNodeList; } catch (Exception ex) { return null; //throw ex; //这里可以定义你自己的异常处理 } }