zoukankan      html  css  js  c++  java
  • Xml基础

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Xml;
    using System.IO;

    namespace Comp.WEB.Xml
    {
    public partial class WebForm1 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    //创建
    protected void btn_Click(object sender, EventArgs e)
    {
    #region 创建

    //<?xml version="1.0" encoding="utf-8"?>
    // <Books>
    // <Book>
    // <Name>红楼梦</Name>
    // <Price />
    // </Book>
    // </Books>

    // //xml 文档
    // XmlDocument doc = new XmlDocument();
    // //创建文档声明节点

    // XmlDeclaration xmlDec= doc.CreateXmlDeclaration("1.0", "utf-8", null);
    // doc.AppendChild(xmlDec);
    // //创建根节点
    // XmlElement parent = doc.CreateElement("Books");
    // doc.AppendChild(parent);
    // //Books/Book
    // XmlElement book1 = doc.CreateElement("Book");
    // parent.AppendChild(book1);

    // //Book/Name
    // XmlElement name = doc.CreateElement("Name");
    // name.InnerText = "红楼梦";
    //book1.AppendChild(name);
    // //Book/Price
    // XmlElement prizr=doc.CreateElement("Price");
    // prizr.InnerText = "10";
    // book1.AppendChild(prizr);
    // doc.Save("c:\1.xml");


    //补充
    //XmlElement book1 = doc.CreateElement("Book");
    //book1.InnerText = "<Name>红楼梦</Name><Prize>10</Prize>"; 不会转义
    //book1.InnerXml = "<Name>红楼梦</Name><Prize>10</Prize>";自动转义

    #endregion
    //创建
    XmlDocument doc = new XmlDocument();
    string path = "c:\1.xml";
    if (!File.Exists(path))
    {
    //创建声明
    XmlDeclaration xmlDec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    //添加声明
    doc.AppendChild(xmlDec);
    //创建BOOKS 节点
    XmlElement parent = doc.CreateElement("Books");
    //添加Books节点
    doc.AppendChild(parent);
    //添加Books/Book下面的节点
    XmlElement book1 = doc.CreateElement("Book");
    parent.AppendChild(book1);

    XmlElement name = doc.CreateElement("Name");
    name.InnerText = "红楼梦";
    book1.AppendChild(name);
    XmlElement Price = doc.CreateElement("Price");
    Price.InnerText = "10";
    book1.AppendChild(Price);

    }
    else
    {
    //更新
    //加载已经存在的xml文件
    doc.Load(path);
    // //获取books节点 根节点
    XmlElement parent = doc.DocumentElement;

    // //创建Book
    XmlElement book1 = doc.CreateElement("Book");

    //添加BOOk节点
    parent.AppendChild(book1);
    //添加Name 节点
    XmlElement name = doc.CreateElement("Name");
    name.InnerText = "西游记";
    book1.AppendChild(name);

    XmlElement price = doc.CreateElement("Price");
    price.InnerText = "20";
    book1.AppendChild(price);

    }


    doc.Save("c:\1.xml");


    // <?xml version="1.0" encoding="utf-8"?>
    //<Books>
    // <Book>
    // <Name>红楼梦</Name>
    // <Price>10</Price>
    // </Book>
    //</Books>

    }

    /// <summary>
    /// 创建带属性的节点
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btn2_Click(object sender, EventArgs e)
    {

    //<Order>
    // <CustomerName>nl</CustomerName>
    // <OrderNumber>BJ200888</OrderNumber>
    // <Items>
    // <OrderItem Name="电脑" Count="30"/>
    // <OrderItem Name="电视" Count="2"/>
    // <OrderItem Name="水杯" Count="20"/>
    // </Items>
    //</Order>
    XmlDocument doc = new XmlDocument();

    XmlDeclaration xmldec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    doc.AppendChild(xmldec);

    //1创建父节点Order
    XmlElement ordre = doc.CreateElement("Order");
    doc.AppendChild(ordre);
    //2创建CustomerName
    XmlElement CustomerName = doc.CreateElement("CustomerName");
    CustomerName.InnerText = "n1";
    ordre.AppendChild(CustomerName);
    //3 //创建OrderNumber
    XmlElement OrderNumber = doc.CreateElement("OrderNumber");
    OrderNumber.InnerText = "BJ200088";
    ordre.AppendChild(OrderNumber);
    ////4创建Items
    XmlElement Items = doc.CreateElement("Items");
    ordre.AppendChild(Items);
    //5//创建OrderItem
    XmlElement orderItem1 = doc.CreateElement("OrderItem");
    orderItem1.SetAttribute("Name", "电脑");
    orderItem1.SetAttribute("Count", "30");
    Items.AppendChild(orderItem1);

    XmlElement orderItem2 = doc.CreateElement("OrderItem");
    orderItem2.SetAttribute("Name", "电视");
    orderItem2.SetAttribute("Count", "1");
    Items.AppendChild(orderItem2);
    doc.Save("c:\2.xml");


    }

    /// <summary>
    /// 读取xml
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    //<Books> /// <Books>
    // <Book>
    // <Name>红楼梦</Name>
    // <Price>10</Price>
    // </Book>
    // <Book>
    // <Name>西游记</Name>
    // <Price>20</Price>
    // </Book>
    //</Books>
    protected void Unnamed1_Click(object sender, EventArgs e)
    {
    string path = "c:\1.xml";
    XmlDocument doc = new XmlDocument();
    doc.Load(path);
    //根节点 BOOKs
    XmlNode parent = doc.DocumentElement;

    XmlNodeList xnl = parent.ChildNodes; ;
    foreach (XmlNode node in xnl)
    {

    //Book
    Response.Write(node.ChildNodes[0].InnerText); //后楼梦
    Response.Write(node.ChildNodes[1].InnerText); //10

    }

    }

    //读取带属性的xml
    protected void t1_Click(object sender, EventArgs e)
    {

    // <Order>
    // <CustomerName>n1</CustomerName>
    // <OrderNumber>BJ200088</OrderNumber>
    // <Items>
    // <OrderItem Name="电脑" Count="30" />
    // <OrderItem Name="电视" Count="1" />
    // </Items>
    //</Order>
    //string path = "c:\2.xml";
    //XmlDocument doc = new XmlDocument();
    //doc.Load(path);

    //父节点 Order
    //XmlElement parent = doc.DocumentElement;
    //XmlNode items = parent.SelectSingleNode("Items");
    //foreach (XmlNode item in items.ChildNodes)
    //{
    // Response.Write(item.Attributes["Name"].Value);
    // Response.Write(item.Attributes["Count"].Value);

    //}


    //2使用 xpath 方式读取
    //string path = "c:\2.xml";
    //XmlDocument doc = new XmlDocument();
    //doc.Load(path);

    //XmlNodeList xnl = doc.SelectNodes("Order/Items/OrderItem");
    //foreach (XmlNode item in xnl)
    //{

    // Response.Write(item.Attributes[0].Value);
    // Response.Write(item.Attributes[2].Value);
    //}


    // 3 也是使用xpath 但是定位不一样
    //string path = "c:\2.xml";
    //XmlDocument doc = new XmlDocument();
    //doc.Load(path);
    //XmlNode node= doc.SelectSingleNode("Order/Items/OrderItem[@Name="电脑"]");
    // Response.Write(node.Attributes[1].Value); //30
    // //node.Attributes["Count"] = 40;
    // //doc.Save(path);

    //更新 30


    //4
    // string path = "c:\2.xml";
    // XmlDocument doc = new XmlDocument();
    // doc.Load(path);
    // XmlNode node= doc.SelectSingleNode("Order/Items");
    // Response.Write(node.InnerXml);
    //// Response.Write(node.InnerText);


    // 操作xml文件
    // XmlDocument
    // Save()
    // Load()
    // SelectSingleNode() 根据xpath找某个节点
    // SelectNodes()
    // DocumentElement 根节点

    // XmlNode
    // XmlElement
    // SetAttribute(); 设置属性
    // Attributes[].Value 读取属性
    // InnerText
    // InnerXml
    // ChildNodes

    //委托:类型安全的指向函数的指针
    //使用步骤
    // 1:声明一个委托 delegate string DelString(string s) 2:定义一个委托变量
    // DelString del = new DelString(ToUpper)
    // DelString del = ToUpper
    // 3:使用委托
    // del(s);


    }


    }
    }

  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/cdaq/p/3577365.html
Copyright © 2011-2022 走看看