• 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

  • 相关阅读:
    【2017中国大学生程序设计竞赛
    【hdu 4333】Revolving Digits
    【hihocoder 1554】最短的 Nore0061
    【2017中国大学生程序设计竞赛
    【Codeforces Beta Round #88 C】Cycle
    【2017 Multi-University Training Contest
    【Codeforces Round #429 (Div. 2) C】Leha and Function
    【Codeforces Round #429 (Div. 2) B】 Godsend
    【Codeforces Round #429 (Div. 2) A】Generous Kefa
    Single-stack real-time operating system for embedded systems
  • 原文地址:https://www.cnblogs.com/leeafei/p/4741380.html
Copyright © 2020-2023  润新知