zoukankan      html  css  js  c++  java
  • Xml的读取方法

    C#中可以用XmlDocument类操作Xml文件

    Xml文件格式较多,一种为较复杂的 在<> 中添加元素数据的,一种为在<></>中添加元素数据的

    <?xml version="1.0" encoding="utf-8" ?>
    <root>
      <person name="WangYao">
        <age>25</age>
      </person>
      <person name="Jobs">
        <age>56</age>
      </person>
    </root>

    C#控制台中读取

    XmlDocument doc = new XmlDocument();
                doc.Load(Environment.CurrentDirectory+"\\Test.xml");
                XmlElement rootElem = doc.DocumentElement;
                XmlNodeList personNodes = rootElem.GetElementsByTagName("person");
                foreach (XmlNode node in personNodes)
                {
                    string strName = ((XmlElement)node).GetAttribute("name");   //获取name属性值 
                    Console.WriteLine(strName);
                    XmlNodeList subAgeNodes = ((XmlElement)node).GetElementsByTagName("age");  //获取age子XmlElement集合  
                    if (subAgeNodes.Count == 1)
                    {
                        string strAge = subAgeNodes[0].InnerText;
                        Console.WriteLine(strAge);
                    }
                }     
                Console.ReadKey();
    XmlElement 类中有GetElementsByTagName(string name)函数可以访问所有与name参数匹配的节点元素集合,返回的是XmlNodeList类型,由于XmlNodeList继承IEnumerable接口,所以可以用foreach遍历
    在此程序中  rootElem.GetElementsByTagName("person") 等价于 rootElem.ChildNodes
          ((XmlElement)node).GetAttribute("name") 等价于 node.Attributes["name"].Value
          ((XmlElement)node).GetElementsByTagName("age")[0].InnerText 等价于 node.ChildNodes[0].InnerText
    XmlNode没有获取元素集合的GetAttribute方法所以强转换XmlElement类型
    ((XmlElement)node).GetAttribute("name")和node.Attributes["name"].Value获取<person name="WangYao"> 中制定名称的特定的值。如果匹配到返回string类型变量。
    GetElementsByTagName返回XmlElement集合。匹配到有1个结果则Count为1。
    ((XmlElement)node).GetElementsByTagName("age")[0].InnerText和node.ChildNodes[0].InnerText获取<age>25</age>中age元素的值


    Environment.CurrentDirectory获取和设置当前目录该进程从中启动的目录的完全限定目录。获取的路径为当前项目的bin/debug目录

    //((XmlElement)node).GetAttribute("name") 等价于 node.Attributes["name"].Value

  • 相关阅读:
    MATLAB中mexFunction函数的接口规范
    opencv 人脸识别 (一)训练样本的处理
    VS 编程常见错误及解决方法
    在用VC编译下debug和release的什么区别
    OpenCV中Mat的详解
    主成份分析PCA
    人脸识别必读的N篇文章
    opencv有关错误及解决办法
    解决办法:CMake编译时出现“error in configuration process project files may be invalid”
    mybatis 学习笔记(二):mybatis SQL注入问题
  • 原文地址:https://www.cnblogs.com/leeafei/p/4741380.html
Copyright © 2011-2022 走看看