一、前言

很多时候也可以直接在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; //这里可以定义你自己的异常处理
            }
        }

常用的方法,读取XML节点并赋值给List集合的更多相关文章

  1. C#读取xml节点数据方法小结

    本文实例总结了C#读取xml节点数据的方法.分享给大家供大家参考.具体如下: 第一种: 使用XPath XML的路径我配置在web.config 的appSettings节点下 <appSett ...

  2. flash读取XML节点内容以及节点属性

    原文地址:http://hi.baidu.com/yqzdm/item/f95fd9d24679d916d90e44c9 一.xml的写法: 这里的xml只是在有限范围内的了解,限于写一些简单的用于f ...

  3. Dom4j使用Xpath语法读取xml节点

    我们可以使用Xpath的语法来轻易的读取xml的某个节点[类似于jQuery的选择器]: 使用Xpath语法需要添加新的jaxen-1.1-beta-7.rar 这个jar包 dom4j完整jar包我 ...

  4. 用 query 方法 获得xml 节点的值

    DECLARE @result xml SET @result='<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelo ...

  5. C# 读取XML节点属性值

    xml文件格式如下: <?xml version="1.0" encoding="UTF-8" ?> <Product type=" ...

  6. 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合

    转自:http://blog.csdn.net/zhao19861029/article/details/8473245 首先实现生成对应的JAVAbean的XML文件方法 /** * DMO4J写入 ...

  7. dom方法读取xml(不常用)

    Book.java package com.xml.demo; public class Book { private int id; private String name; private Flo ...

  8. 使用C#读取XML节点,修改XML节点

    例子: <add key="IsEmptyDGAddRootText" value="" /> <!--是否可以修改归档状态档案 false: ...

  9. C# 读取xml节点类容

    这是一个测试节点类容的获取 这是控制台代码部分 注意的应用文件 :using.system.Xml using System; using System.Collections.Generic; us ...

随机推荐

  1. CSS书写规范、顺序和命名规则

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考   这些是参考了国外一些文章以及我的个 ...

  2. windows下配置svn的https访问

    svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux.unix以及windows下.svn通常采用http方式进行代码提交与下载.由于密码采用明文传输,因此存在泄密的风险.若采用htt ...

  3. 【android】android下防止anr程序无响应

    public class AnrActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState ...

  4. 移动端Web开发笔记

    最近写的一个移动端项目:上海 地铁指路通,之间遇到的一些问题,记录下来(以后会不断补充的): 1. 丰富的页面Meta: 1.1: 控制显示区域各种属性: <meta content=" ...

  5. Django数据迁移

    http://www.ziqiangxuetang.com/django/django-data-migration.html

  6. #ifdef __OBJC__ 宏定义的作用

    有空试试 表示宏内引用的文件确保只被使用Objective-C语言的文件所引用,保证引用关系的清晰.

  7. 开心系列学习笔记---------javascript(7)

    一.函数        1)函数类型            函数声明(缩写为FD)是这样一种函数:            1.有一个特定的名称            2.在源码中的位置:要么处于程序级 ...

  8. VS2010安装MSDN

    VS2010正式版不再有单独的MSDN Library安装选项,以至于很多同学找不到本地的MSDN Library来用,其实VS2010的ISO安装光盘里已经包含有MSDN Library,只不过要手 ...

  9. include .h 以及.cpp的记录

    VC include 路径解析要了解vc中使用#include命令包含头文件所搜寻的路径,必须先了解vc中的几种路径:1. 系统路径 系统路径在vc中是"Tools->Options- ...

  10. C51函数的递归调用

    前几天在写C51程序时用到了递归,简单程序如下: void WRITE_ADD(uchar addr,uchar wbyte) { START(); //先发送起始信号 WRITE_BYTE(0xa0 ...