zoukankan      html  css  js  c++  java
  • c#操作xml的完整例子

    1、xml文件:

  • <?xml version="1.0" encoding="UTF-8"?>  
  • <books>  
  •  <book>  
  •   <name>哈里波特</name>  
  •   <price>10</price>  
  •   <memo>这是一本很好看的书。</memo>  
  •  </book>  
  •  <book id="B02">  
  •   <name>三国演义</name>  
  •   <price>10</price>  
  •   <memo>四大名著之一。</memo>  
  •  </book>  
  •  <book id="B03">  
  •   <name>水浒</name>  
  •   <price>6</price>  
  •   <memo>四大名著之一。</memo>  
  •  </book>  
  •  <book id="B04">  
  •   <name>红楼</name>  
  •   <price>5</price>  
  •   <memo>四大名著之一。</memo>  
  •  </book>  
  • </books>  
  • 2、c#代码:

    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.Text;   
    4. using System.Xml;   
    5.   
    6. namespace TestXml   
    7. {   
    8.     class Program   
    9.     {   
    10.         static void Main(string[] args)   
    11.         {   
    12.             XmlElement theBook = null, theElem = null, root = null;   
    13.             XmlDocument xmldoc = new XmlDocument();   
    14.             try  
    15.             {   
    16.                 xmldoc.Load("Books.xml");   
    17.                 root = xmldoc.DocumentElement;   
    18.   
    19.                 //---  新建一本书开始 ----   
    20.                 theBook = xmldoc.CreateElement("book");   
    21.                 theElem = xmldoc.CreateElement("name");   
    22.                 theElem.InnerText = "新书";   
    23.                 theBook.AppendChild(theElem);   
    24.   
    25.                 theElem = xmldoc.CreateElement("price");   
    26.                 theElem.InnerText = "20";   
    27.                 theBook.AppendChild(theElem);   
    28.   
    29.                 theElem = xmldoc.CreateElement("memo");   
    30.                 theElem.InnerText = "新书更好看。";   
    31.                 theBook.AppendChild(theElem);   
    32.                 root.AppendChild(theBook);   
    33.                 Console.Out.WriteLine("---  新建一本书开始 ----");   
    34.                 Console.Out.WriteLine(root.OuterXml);   
    35.                 //---  新建一本书完成 ----   
    36.   
    37.                 //---  下面对《哈里波特》做一些修改。 ----   
    38.                 //---  查询找《哈里波特》----   
    39.                 theBook = (XmlElement)root.SelectSingleNode("/books/book[name='哈里波特']");   
    40.                 Console.Out.WriteLine("---  查找《哈里波特》 ----");   
    41.                 Console.Out.WriteLine(theBook.OuterXml);   
    42.                 //---  此时修改这本书的价格 -----   
    43.                 theBook.GetElementsByTagName("price").Item(0).InnerText = "15";//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,GetElementsByTagName("price")相当于SelectNodes(".//price")。   
    44.                 Console.Out.WriteLine("---  此时修改这本书的价格 ----");   
    45.                 Console.Out.WriteLine(theBook.OuterXml);   
    46.                 //---  另外还想加一个属性id,值为B01 ----   
    47.                 theBook.SetAttribute("id""B01");   
    48.                 Console.Out.WriteLine("---  另外还想加一个属性id,值为B01 ----");   
    49.                 Console.Out.WriteLine(theBook.OuterXml);   
    50.                 //---  对《哈里波特》修改完成。 ----   
    51.   
    52.                 //---  再将所有价格低于10的书删除  ----   
    53.                 theBook = (XmlElement)root.SelectSingleNode("/books/book[@id='B02']");   
    54.                 Console.Out.WriteLine("---  要用id属性删除《三国演义》这本书 ----");   
    55.                 Console.Out.WriteLine(theBook.OuterXml);   
    56.                 theBook.ParentNode.RemoveChild(theBook);   
    57.                 Console.Out.WriteLine("---  删除后的XML ----");   
    58.                 Console.Out.WriteLine(xmldoc.OuterXml);   
    59.   
    60.                 //---  再将所有价格低于10的书删除  ----   
    61.                 XmlNodeList someBooks = root.SelectNodes("/books/book[price<10]");   
    62.                 Console.Out.WriteLine("---  再将所有价格低于10的书删除  ---");   
    63.                 Console.Out.WriteLine("---  符合条件的书有 " + someBooks.Count + "本。  ---");   
    64.   
    65.                 for (int i = 0; i < someBooks.Count; i++)   
    66.                 {   
    67.                     someBooks.Item(i).ParentNode.RemoveChild(someBooks.Item(i));   
    68.                 }   
    69.                 Console.Out.WriteLine("---  删除后的XML ----");   
    70.                 Console.Out.WriteLine(xmldoc.OuterXml);   
    71.   
    72.                 xmldoc.Save("books.xml");//保存到books.xml   
    73.   
    74.                 Console.In.Read();   
    75.             }   
    76.             catch (Exception e)   
    77.             {   
    78.                 Console.Out.WriteLine(e.Message);   
    79.             }   
    80.         }   
    81.     }   
    82. }  

查看全文
  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/systemxgl/p/1826706.html
  • Copyright © 2011-2022 走看看