zoukankan      html  css  js  c++  java
  • c#学习笔记之XML

    XML(eXtensible Markup Language)可扩展性标记语言,可扩展性标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展性标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。

    什么是可扩展性标记语言,我从网上找了一些解释:

    • 可扩展标记语言是一种很像超文本标记语言的标记语言。
    • 它的设计宗旨是传输数据,而不是显示数据。
    • 它的标签没有被预定义。您需要自行定义标签。
    • 它被设计为具有自我描述性。
    • 它是W3C的推荐标准

    xml中一个元素的定义:

    <FirstName>Orlando</FirstName>

    其中<FirstName>是元素的开始标签,</FirstName>是元素的结束标签。

    xml中的元素可以有一个或者多个子元素,但是每一个元素必须有一个父元素。有同一个父元素的元素成为兄弟元素。

    下面一段代码,有一个Customer元素,其中包括FirstName,LastName,EmailAddress三个兄弟元素。

    <Customer>
      <FirstName>Orlando</FirstName>
      <LastName>Gee</LastName>
      <EmailAddress>orlando0@hotmail.com</EmailAddress>
    </Customer>

    下面的例子都是基于Customer来实现的。

    一、创建一个xml文件的例子

    XmlDocument customerXml = new XmlDocument();//创建一个xml

    XmlElement rootElem = customerXml.CreateElement("Customers");
    customerXml.AppendChild(rootElem);//把根元素加入到xml中

    XmlElement firstNameElem = customerXml.CreateElement("FirstName");
    firstNameElem.InnerText  = customer.FirstName;
    customerElem.AppendChild(firstNameElem);//把子元素加入到xml中

    实例如下:

    List<Customer> customers = CreateCustomerList();//创建一个customer的list
    XmlDocument customerXml = new XmlDocument();
      XmlElement rootElem = customerXml.CreateElement("Customers");
      customerXml.AppendChild(rootElem);//加入根元素
    
      foreach (Customer customer in customers)
      {
      // 创建一个新的元素表达customer类
      XmlElement customerElem = customerXml.CreateElement("Customer");
     
      // 把第一个元素FirstName加入到其中
      XmlElement firstNameElem = customerXml.CreateElement("FirstName");
      firstNameElem.InnerText  = customer.FirstName;
      customerElem.AppendChild(firstNameElem);
     // 把LastName加入到其中
      XmlElement lastNameElem = customerXml.CreateElement("LastName");
      lastNameElem.InnerText = customer.LastName;
      customerElem.AppendChild(lastNameElem);
    
     // 把Email地址加入到其中
      XmlElement emailAddress = customerXml.CreateElement("EmailAddress");
      emailAddress.InnerText = customer.EmailAddress;
      customerElem.AppendChild(emailAddress);
    
      //最后把customer元素加入到XML文件中
    rootElem.AppendChild(customerElem); } Console.WriteLine(customerXml.OuterXml); Console.Read();

    输出结果:

    Output:
    <Customers>
      <Customer>
        <FirstName>Orlando</FirstName>
        <LastName>Gee</LastName>
        <EmailAddress>orlando0@hotmail.com</EmailAddress>
      </Customer>
      <Customer>
        <FirstName>Keith</FirstName>
        <LastName>Harris</LastName>
        <EmailAddress>keith0@hotmail.com</EmailAddress>
      </Customer>
       <> ….</>
    </Customers>


    二、把元素特征加入到xml文件中,加入到其中就像这样

    <Customer FirstName="Orlando" LastName="Gee">
      <EmailAddress>…</EmailAddress>
    </Customer>

    代码如下:

    // Add an attribute :FirstName property  to the customer element.
    XmlAttribute firstNameAttr = customerXml.CreateAttribute("FirstName");
    firstNameAttr.Value = customer.FirstName;
    customerElem.Attributes.Append(firstNameAttr);

    在xml中寻找元素:

    string xPath = "/Customers/Customer[@FirstName='Donna']";//寻找customer下名字为Donna的信息
    XmlNode oneCustomer = customerXml.SelectSingleNode(xPath);

    本例中搜索从根节点开始,直到搜索到名为Donna的人。

    另一种方法为不知道路径具体为什么,所用方法为:

    xPath = "descendant::Customer[@FirstName='Donna']";
    oneCustomer = customerXml.SelectSingleNode(xPath);

    其中:descendant表示搜索所在位置后的所有符合条件的后代,即子结点。

    xml的用法还有很多,以后会随着需要的增多具体增加对xml的理解。

  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/zyqBlog/p/4474732.html
Copyright © 2011-2022 走看看