• Xmlasp.net入门笔记(二)


    //--------------------------------------------------------------------

    Xml基本概念

    一.Xml文档包括两部分内容

    1.  一个xml文档声明

    声明这是一个xml文档

    2.  xml标识创建的内容

    二.Xml中的基本概念

    1.  Element(元素):构成xml文档的最小单位,即xml文档表示的单个数据,

    如:<UserID>luoluoluo</UserID>

    Tag(标签):是用来定义元素的,必须成对出现,如有<UserID>,比如有</UserID>

    Attribute(属性):如<UserID kkk=12>luoluoluo</UserID>,其中kkk为属性,完全可以把属性转化为子元素

    2.  Declaration(声明):文档的第一行必须使用xml声明,告诉浏览器这是一个xml文档

    3.  Parent Element(父元素) Child Element(子元素):父元素指包含其他元素的元素,被包含的称为子元素

    4.  DTD(文件类型定义):定义xml元素,属性,以及元素属性之间关系。通过DTD可以检测xml文档的结构是否正确。

    5.  Schema(规划):是数据规则的描述,完成两件事

    1)定义元素数据类型和元素之间的关系

    2)定义元素所包含的内容类型

    6.  Document Tree(文档树)

    文档树是文档元素愤激结构的形象表示。一个文档结构树包含亘呀,他是最顶级的元素

     

    三.Xml语法

    1.  Xml文档中必须有声明

    2.  注意大小写

    3.  属性必须加上引号

    4.  标签必须关闭

    标签成对,且关闭

    5.  元素名称中不能带有空格,“:”,xml保留字

    6.  元素名不能以“_”开头

     

    DataSetXml

    DataSet具有操作xml的功能,将xml文档读入DataSet的方法是ReadXml,将DataSet写入xml的方法是WriteXml,他们带有一个参数,可以是TextReader,Stream,也可以是String

     

    1.       xml读入DataSet

    DataSet ds = new DataSet();

    string strXmlPath = Server.MapPath("TestXml.xml");

    ds.ReadXml(strXmlPath);

    DataGrid1.DataSource = ds.Tables[0].DefaultView;

    DataGrid1.DataBind();

     

    2.DataSet写入Xml

    string strXmlPath = Server.MapPath("TestXml.xml");

    ds.WriteXml(strXmlPath);

     

    具体例子

    TestXml.xml

    <?xml version="1.0" standalone="yes"?>

    <NewDataSet xmlns="http://tempuri.org/TestXml.xsd">

      <User>

        <UserID>luoluoluo</UserID>

        <UserPwd>luoluoPwd</UserPwd>

        <UserLevel>1</UserLevel>

      </User>

    </NewDataSet>

    功能:从xml中把数据读入DataSet,然后绑定到DataGrid1中,然后修改,并添加数据,再写入到xml中,然后再从xml中把数据读如DataSet,然后绑定到DataGrid2

    DataSet ds = new DataSet();

    string strXmlPath = Server.MapPath("TestXml.xml");

    ds.ReadXml(strXmlPath);

    DataGrid1.DataSource = ds.Tables[0].DefaultView;

    DataGrid1.DataBind();

    DataTable dt = ds.Tables[0];

    //修改

    DataRow dr = dt.Rows[0];

    dr["UserID"] = "luoluoluo";

    dr["UserPwd"] = "luoluoPwd";

    DataRow drAdd = dt.NewRow();

    drAdd["UserID"] = "luoAdd";

    drAdd["UserPwd"] = "luoAddPwd";

    drAdd["UserLevel"] = 2;

    dt.Rows.Add(drAdd);

    ds.AcceptChanges();

    //写入xml

    ds.WriteXml(strXmlPath);

    ds.Clear();

    ds.ReadXml(strXmlPath);

    //绑定到dataGrid2

    DataGrid2.DataSource = ds.Tables[0].DefaultView;

    DataGrid2.DataBind();

     

    使用ReadXml读出xml文档时,需要注意一下几点:

    1.  文档树不超过三层,否则读出有问题

    2.  根元素不使用属性,否则读出有问题

    3.  根元素超过一个,则多余的根元素和子元素无效,即只读出第一个根元素

    其他:

    读取xml文档指定结点

    1.  使用XmlNodeReader

        XmlDocument xDoc = new XmlDocument();

         xDoc.Load(Server.MapPath("TestXml.xml"));

         XmlNodeReader xReader = new XmlNodeReader(xDoc);

         string strID="",strPwd="",strLevel="";

         while (xReader.Read())

         {

           if (xReader.NodeType==XmlNodeType.Element)

             {

               switch (xReader.Name)

                  {

                   case "UserID":

                                xReader.Read();

                                strID = xReader.Value;

                                break;

                   case "UserPwd":

                                xReader.Read();

                                strPwd = xReader.Value;

                                break;

                   case "UserLevel":

                                  xReader.Read();

                                 strLevel = xReader.Value;

                                 break;

                   default:

                           break;

                  }

             }

    }

    2.  使用XmlNodeList

        XmlDocument xDoc = new XmlDocument();

         xDoc.Load(Server.MapPath("TestXml.xml"));

         XmlNodeList xNodeList = xDoc.GetElementsByTagName("UserID");

         Label3.Text = xNodeList[0].InnerXml;

     

    对于XmlDocument,XmlNodeReader,XmlNodeList等也没什么概念,再多多读文档再补充



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=460721

  • 相关阅读:
    jmeter:dubbo接口测试
    聊聊基准测试的MVP方案
    建立团队的性能文化
    针对 Intellij IDEA 2018.2 版本 异常退出问题
    maven settings.xml配置优化
    Windows安装MySQL
    String的intern()方法详解
    Ubuntu下安装JDK图文教程详解 jdk-java6-30 .bin 的处理方法
    Iterator迭代器快捷键
    $.each $.map $.filter 区别 Script
  • 原文地址:https://www.cnblogs.com/flyfish/p/314119.html
Copyright © 2020-2023  润新知