zoukankan      html  css  js  c++  java
  • C# 根据节点索引访问XML配置文件

    查了一些,都是根据XML属性来访问指定节点,我这想根据节点索引来访问XML

    首先上XML样式

    1 <?xml version="1.0" encoding="utf-8" ?>
    2 <FeatureClasses>
    3     <FeatureClass name = "t_room"></FeatureClass>
    4     <FeatureClass name = "t_floor"></FeatureClass>
    5     <FeatureClass name = "t_in_wall"></FeatureClass>
    6     <FeatureClass name = "t_in_toilet"></FeatureClass>
    7     <FeatureClass name = "t_in_elevator"></FeatureClass>
    8 </FeatureClasses>

    然后上C#访问代码

     1   public string ReadXmlNode(string filename,int i)
     2         {
     3             XmlDocument xmlDoc = new XmlDocument();
     4             string str="";
     5             try
     6             {
     7                 xmlDoc.Load(filename);
     8                 XmlNode root = xmlDoc.SelectSingleNode("//FeatureClass");
     9                 for (int j = 0; j <= i; j++)
    10                 {
    11                     str = root.Attributes["name"].Value;
    12                    root = root.NextSibling;
    13                 }
    14              }
    15             catch (Exception e)
    16             {
    17                 MessageBox.Show("" + e);   //显示错误信息
    18                 return str;
    19             }
    20             return str;
    21         }

    其实就是遍历啦,没找到根据索引访问的方法,只有ChildNodes访问子节点索引。

    然后在你的主程序for循环中调用这个方法

      string openLyer = ReadXmlNode(pathName,i);
    View Code

    再上一些路径写法

    1   string fileName = AppDomain.CurrentDomain.BaseDirectory;//获得当前路径debug
    2   string fileNameplus = System.IO.Path.GetFullPath("..\..\..");//往上返回
    3   string pathName = fileNameplus + "\bin\Config\LayerName.xml";//拼接路径

    写的比较简单详细。有不对地方还请指正。


  • 相关阅读:
    Delphi 之 内存篇(二)
    VC++ 之 第八课(面向对象三)
    Delphi API 之 BitBlt
    我所认为的极客精神(一)
    DOS程序员手册(十五)
    DOS程序员手册(十四)
    DOS程序员手册(十三)
    DOS程序员手册(十二)
    DOS程序员手册(十一)
    DOS程序员手册(十)
  • 原文地址:https://www.cnblogs.com/marvelousone/p/7266680.html
Copyright © 2011-2022 走看看