XML是一种标记语言,具有描述所有已知和未知数据的能力。XML扩展性比较好,可以为新的数据类型制定新的数据描述规则,作为对标记集的扩展。

XML的特点:

  1.XML数据可以跨平台使用并可以被人阅读理解。

  2.XML数据的内容和结构有明确的定义。

  3.XML数据之间的关系得以强化。

  4.XML数据的内容和数据的表现形式分离。

  5.XML使用的结构是开放的、可扩展的。

XML文档的组成:

  1.XML的声明

    XML标准规定声明必须放在文档的第一行,声明其实也是处理指令的一种。

    声明的常用属性和常用值如下:

      Version:1.0,声明中必须包括此属性且必须放在第一位,它指定了文档所采用的XML版本号。

      Encoding:GB2312,文档使用的字符集为简体中文;

             BIG5,文档使用的字符集为繁体中文;

      UTF-8,文档使用的字符集为压缩的Unicode编码;

      UTF-16,文档使用的字符集为UCS编码。

      Standalone:yes,文档是独立文档,没有DTD文档与之配套;

              no,表示可能有DTD文档为本文档进行位置声明。

  2.处理指令PI

    处理XML的应用程序提供信息。

  3.XML元素

    元素是组成XML文档的核心。XML语法规定每个XML文档都要包括至少一个根元素。根标记必须是非空标记,包括整个文档的数据内容,数据内容则是位于标记之间的内容。

文档类型定义

  文档类型定义(Document Type Definition,DTD)是一种规范,在DTD中可以向XML的阅读工具解释XML文档标记集中每一个标记的含义。DTD根据其出现的位置可以分为内部DTD和外部DTD两种。内部DTD是指DTD和相应的XML文档处在同一个文档中,外部DTD就是DTD与XML文档处在不同的文档之中。

  描述DTD文档也需要一套语法结构,关键字是组成语法结构的基础,构建DTD时常用的关键字有:

    1.ANY:数据既可以是纯文本也可以是子元素,多用来修饰根元素。

    2.ATTLIST:定义元素的属性。

    3.DOCTYPE:描述根元素。

    4.ELEMENT:描述所有子元素。

    5.EMPTY:空元素。

    6.SYSTEM:表示使用外部DTD文档。

    7.#FIXEDATTLIST:定义的属性的值是固定。

    8.#IMPLIEDATTLIST:定义的属性不是必须赋值的。

    9.#PCDATA:数据为纯文本。

    10.#REQUIREDATTLIST:定义的属性是必须赋值的。

    11.INCLUDE:表示包括的内容有效。

    12.IGNORE:与INCLUDE相同,表示包括的内容无效。

  DTD提供了一些运算表达式来描述XML文档中的元素。用A、B、C代表XML文档中的元素,常用的运算表达式如下:

    1.A+:元素A至少出现一次。

    2.A*:元素A可以出现很多次也可以不出现。

    3.A?:元素A出现一次或不出现。

    4.(A B C):元素A、B、C之间的间隔是空格,表示它们是无序排列。

    5.(A,B,C):元素A、B、C之间的间隔是逗号,表示它们是有序排列。

    6.A|B:元素A、B之间是逻辑或的关系。

  虽然DTD能够对XML文档结构进行描述,但是它也有如下缺点:

    1.DTA不支持数据类型,而在实际应用中往往会有多种复杂的数据类型。

    2.DTA的标记是固定的,不能扩充标记。

    3.DTA使用不同于XML的独立性的语法规则。

可扩展样式语言

  可扩展样式语言(Extensible Stylesheet Language,XSL),是W3C制定的另一种表现XML文档的样式语言。XSL是XML的应用,符合XML的语法规范,可以被XML的分析器处理。

  XSL是一种语言,通过对XML文档进行转换,然后将转换的结果表现出来。转换的过程是根据XML文档特性运行XSLT(XSL Transformation)将XML文档转换成带信息的树型结构。然后按照FO(Formatted Object)分析树,从而将XML文档表现出来。

  XSL转换XML文档分为二个步骤:建树和表现树。建树可以在服务器端执行,也可以在客户端执行。在服务器端执行时,把XML文档转换成HTML文档,然后发送到客户端。而在客户端执行建树的话,客户端必须支持XML和XSL。

  XSL主要用来转换XML文档,在商业系统中它可以将XML文档转换成可以被各种系统或是应用程序解读的数据。这非常有利于各种商业系统之间的数据交换。

  XSL就是通过模板将源文件文档按照模板的格式转换成结果文档的。模板定义了一系列的元素来描述源文档中的数据和属性等内容,在经过转换之后,建立树型结构。

  XSL常用的模板如下:

    1.xsl:apply-import:调用导入的外部模板,可以应用为部分文档的模板。.

    2.xsl:apply-templates:应用模板,通过select、mode两个属性确定要应用的模板。

    3.xsl:attribute:为元素输出定义属性节点。

    4.xsl:attribute-set:定义一组属性节点。

    5.xsl:call-template:调用由call-template指定的模板。

    6.xsl:choose:根据条件调用模板。

    7.xsl:comment:在输出加入注释。

    8.xsl:copy:复制当前节点到输出。

    9.xsl:element:在输出中创建新元素。

    10.xsl:for-each:循环调用模板匹配每个节点

    11.xsl:if:模板在简单情况下的条件调用。

    12.xsl:message:发送文本信息给消息缓冲区或消息对话框。

    13.xsl:sort:排序节点。

    14.xsl:stylesheet:指定样式单。

    15.xsl:template:指定模板。

    16.xsl:value-of:为选定节点加入文本值。

XPath

  XPath是XSL的重要组成部分。XPath的作用在于为XML文档的内容定位,并通过XPath来访问指定的XML元素。之所以要在XSL中引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素。

  XPath提供的节点匹配的方法:

    1.路径匹配:路径匹配和文件路径的表示比较相似,通过一系列的符号来指定路径。

    2.位置匹配:根据每个元素的子元素都是有序的原则来匹配。

    3.亲属关系匹配:XML是一个树型结构,因此在匹配时可以利用树型结构的“父子”关系。

    4.条件匹配:利用一些函数的运算结果的布尔值来匹配符合条件的节点。

.NET中实现的XML DOM

  XML语言仅仅是是一种信息交换的载体,是一种信息交换的方法。要使用XML文档必须通过使用接口。DOM是一个程序接口,应用程序和脚本可以通过这个接口访问和修改XML文档数据。DOM接口应用程序使得对XML文档的访问变得简单。

  DOM接口定义了一系列对象来实现对XML文档数据的访问和修改。DOM接口将XML文档转换为树形的文档结构,应用程序通过树形文档对XML文档进行层次化的访问,从而实现了对XML文档的操作。

  .NET类库中支持DOM的类分为两个层次:

    基础类和扩展类。基础类组包括了用来编写操纵XML文档的应用程序所需要的类;扩展类被定义用来简化程序员的开发工作的类。

    在基础类中包含了三个类:

      1.XmlNode类用来表示文档树中的单个节点,它描述了XML文档中各种具体节点类型的共性,它是一个抽象类。

      2.XmlNodeList类用来表示一个节点的有序集合,它提供了对迭代操作和索引器的支持。

      3.XmlNamedNodeMap类用来表示一个节点的集合,该集合中的元素可以使用节点名或索引来访问。

    扩展类中主要包括了以下由XmlNode类派生出来的类:

      1.XmlAttribute:表示一个属性,此属性的有效值和默认值在DTD或架构中进行定义。

      2.XmlAttributeCollection:表示属性集合,这些属性集合的有效值和默认值在DTD或架构中进行定义。

      3.XmlComment:表示XML文档的注释内容。

      4.XmlDocument:表示XML文档。

      5.XmlDocumentType:表示XMl文档的DOCTYPE声明节点。

      6.XmlElement:表示一个元素。

      7.XmlEntity:表示XML文档中一个解析过或为解析过的实体。

      8.XmlEntityReference:表示一个实体的引用。

      9.XmlLinkedNode:获取紧靠该节点的节点。

      10.XmlReader:表示提供对XML数据进行快速、非缓存、只进访问的读取器。

      11.XmlText:表示元素或属性的文本值。

      12.XmlTextReader:表示提供对XML数据进行快速、非缓存、只进访问的读取器。

      13.XmlTextWriter:表示提供快速、非缓存、只进方法的编写器,该方法生成包含XML数据。

      14.XmlWriter:表示提供快速、非缓存、只进方法的编写器,该方法生成包含XML数据。 

  创建XML文档

    创建XML文档的方法有两种:

      1.创建不带参数的XmlDocument。

        XmlDocument xmlDoc = new XmlDocument();//创建DOM对象

      2. 创建带参数的XmlDocument。

        System.Xml.XmlDocument doc = new    XmlDocument(xmlNameTable);

  将XML数据读入文档

    DOM可以将不同格式的XML读入内存,这些格式可以是字符串、流、URL、文本读取器或XmlReader的派生类。读取的XML数据的方法有两种:

      1. Load方法,该方法加载指定的XML数据。

        总共包含四个重载函数:

          XmlDocument.Load (Stream):从指定的流加载XML文档。

          XmlDocument.Load (String):从指定的URL加载XML文档。

          XmlDocument.Load (TextReader):从指定的TextReader加载XML文档。

          XmlDocument.Load (XmlReader):从指定的XmlReader加载XML文档。

      2.LoadXML方法,该方法从字符串中读取XML。

  保存XML文档

    可以使用Save方法保存XML文档。Save方法有四个重载方法:

      1.Save(string filename):将文档保存到文件filename的位置。

      2.Save(System.IO.Stream outStream):保存到流outStream中,流的概念存在于文件操作中。

      3.Save(System.IO.TextWriter writer):保存到TextWriter中,TextWriter也是文件操作中的一个类。

      4.Save(XmlWriter w):保存到XmlWriter中。

    将XML数据读入文档并保存。

      新建项目,在项目中添加如下代码:

             XmlDocument document = new XmlDocument();
document.LoadXml
("<student>"+
"<stuNo>001</stuNo>"+
"<stuName>韩明</stuName>"+
"<Age>20</Age>"+
"</student>");
document.Save (@"C:\Users\light\Desktop\1.xml");

      运行项目,会在桌面上生成1.xml文件。

  创建新节点

    XmlDocument具有用于所有节点类型的Create方法,XmlDocument常用的创建节点的方法如下:

      1.CreateAttribute:创建具有指定名称的XmlAttribute。

      2.CreateCDataSection:创建包含指定数据的XmlCDataSection。

      3.CreateComment:创建包含指定数据的XmlComment。

      4.CreateDocumentType:返回新的XmlDocumentType对象。

      5.CreateElement:创建XmlElement。

      6.CreateEntityReference:创建具有指定名称的XmlEntityReference。

      7.CreateNode:创建XmlNode。

      8.CreateTextNode:创建具有指定文本的XmlText。

    创建新节点后,将新节点插入XML结构树中的方法如下:

      1.InsertBefore:插入到引用节点之前。

      2.InsertAfter:插入到引用节点之后。

      3.AppendChild:将节点添加到给定节点的子节点列表的末尾。

      4.PrependChild:将节点添加到给定节点的子节点列表的开头。

      5.Append:将XmlAttribute节点追加到与元素关联的属性集合的末尾。

    

    创建节点。

      代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
XmlDocument xmlDocument = new XmlDocument();//创建DOM对象
xmlDocument.Load("Student.xml");//加载XML文档
XmlNode root = xmlDocument.SelectSingleNode("//Students");//获取根节点
XmlElement xe1 = xmlDocument.CreateElement("Student");//创建一个节点 XmlElement xesub1 = xmlDocument.CreateElement("name");//创建子节点
xesub1.InnerText = "吴楠";//设置子节点的数据
xe1.AppendChild(xesub1);//添加到节点中 XmlElement xesub2 = xmlDocument.CreateElement("sex");//创建子节点
xesub2.InnerText = "女";//设置子节点的数据
xe1.AppendChild(xesub2);//添加到节点中 XmlElement xesub3 = xmlDocument.CreateElement("age");//创建子节点
xesub3.InnerText = "";//设置子节点的数据
xe1.AppendChild(xesub3);//添加到节点中 root.AppendChild(xe1);//添加到根节点中
xmlDocument.Save("Student.xml");//保存
show();
Console.ReadKey();
}
static void show()
{
XmlDocument xmlDoc = new XmlDocument();//创建DOM对象
xmlDoc.Load("Student.xml");//加载XML文档装进DOM文档
XmlNodeList nodeList;//定义节点列表
XmlNode root = xmlDoc.DocumentElement;//定义根节点,并把DOM的根节点赋给它
nodeList = root.SelectNodes("//Student");
foreach (XmlNode xmlNode in nodeList)//循环访问结点列表
{
XmlNodeList list = xmlNode.ChildNodes;//获取book节点下的所有结点
foreach (XmlNode xmlNode1 in list)//遍历子节点
{
Console.Write(xmlNode1.InnerText);//输出节点包含的数据
Console.Write(" ");
}
Console.WriteLine(" ");
}
}
}
}

  修改XML文档

    常用的修改XML文档的方法如下:

      1.使用XmlNode.Value方法更改节点值。

      2.通过用新节点替换节点来修改全部节点集,可以使用XmlNode.InnerXml属性完成。

      3.使用XmlNode.ReplaceChild方法用新节点替换现有节点。

      4.使用XmlCharacterData.AppendData方法、XmlCharacterData.InsertData方法或XmlCharacterData.ReplaceData方法将附加字符添加到从XmlCharacter类继承的节点。

      5.对从XmlCharacterData继承的节点类型使用DeleteData方法移除某个范围的字符来修改内容。

      6.使用SetAttribute方法更新属性值。如果属性不存在,创建一个新属性;如果存在,更新属性值。

  删除XML文档的节点、属性和内容

    删除节点

      从DOM中移除节点,可以使用RemoveChild方法移除特定的节点。如果所移除的节点不是叶节点,当移除节点时,将移除节点的子树。

      若要移除多个节点,可以使用RemoveAll方法移除当前节点的所有子级和属性。

      如果使用XmlNamedNodeMap,也可以使用RemoveNamedItem方法移除节点。

    删除属性集合中的属性

      使用XmlAttributeCollection.Remove方法移除特定属性;

      使用XmlAttributeCollection.RemoveAll方法移除集合中的所有属性,使元素不具有任何属性值;

      使用XmlAttributeCollection.RemoveAt方法使用索引号移除属性集合中的属性。

    删除节点属性

      使用XmlElement.RemoveAllAttributes移除属性集合;

      使用XmlElement.RemoveAttribute方法按名称移除集合中的单个属性;

      使用XmlElement.RemoveAttributeAt按索引号移除集合中的单个属性。

    删除节点内容

      使用DeleteData方法移除字符,该方法从节点中移除某个范围的。

    

    删除节点。

      代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
delete();
show();
Console.ReadKey();
}
static void show()
{
XmlDocument xmlDoc = new XmlDocument();//创建DOM对象
xmlDoc.Load("Student.xml");//加载XML文档装进DOM文档
XmlNodeList nodeList;//定义节点列表
XmlNode root = xmlDoc.DocumentElement;//定义根节点,并把DOM的根节点赋给它
nodeList = root.SelectNodes("//Student");
foreach (XmlNode xmlNode in nodeList)//循环访问结点列表
{
XmlNodeList list = xmlNode.ChildNodes;//获取book节点下的所有结点
foreach (XmlNode xmlNode1 in list)//遍历子节点
{
Console.Write(xmlNode1.InnerText);//输出节点包含的数据
Console.Write(" ");
}
Console.WriteLine(" ");
}
}
static void delete()
{
try
{
XmlDocument xmlDoc = new XmlDocument();//创建DOM对象
xmlDoc.Load("Student.xml");//加载XML文档装进DOM文档
XmlNode root = xmlDoc.SelectSingleNode("//Students//Student[name='吴楠']");//获取根节点
if (root != null)
{
root.ParentNode.RemoveChild(root);//删除改节点
Console.WriteLine("删除节点成功!");
}
else
{
Console.WriteLine("未找到要删除的节点!");
}
//root.pRemoveChild();
xmlDoc.Save("Student.xml");//保存
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
Console.ReadKey();
}
}
}

  使用XPath导航选择节点

    使用XPath导航可以方便的查询DOM中的信息。

    DOM包含的方法允许使用XPath导航查询DOM中的信息。可以使用XPath查找单个特定节点或查找与某个条件匹配的所有节点。

    DOM类提供两种XPath选择方法。SelectSingleNode方法返回符合选择条件的第一个节点,SelectNodes方法返回包含匹配节点的XmlNodeList。

Dataset与XML

  DataSet是基于XML的,具有多种XML特性。DataSet对象和XMLDataDocument对象可以同时操作内存中的同一数据,无论哪个对象对该数据进行修改都会反映到另一对象里面。

  把XML数据读入DataSet对象

    DataSet对象提供了一个名为ReadXmlSchema的方法,利用该方法可以从已经存在的XMLSchema来建立数据模式。ReadXmlSchema方法的重载方法如下:

      1.  ReadXmlSchema(string fileName):从指定的文件读取XML Schema。

             //使用文件名
DataSet dataSet = new DataSet();
dataSet.ReadXmlSchema(Server.MapPath("Student.xml"));

      2. ReadXmlSchema(System.IO.Stream stream):从流中读取XML Schema。

             //使用流对象
DataSet dataSet = new DataSet();
System.IO.FileStream fileStream = new System.IO.FileStream("Student.xml", System.IO.FileMode.Open);
dataSet.ReadXmlSchema(fileStream);
fileStream.Close();

      3.  ReadXmlSchema(System.IO.TextReader reader):读取存在于TextReader的XML Schema。

             //使用TextReader
DataSet dataSet = new DataSet();
//StreamReader是TextReader的派生类
System.IO.StreamReader streamReader = new System.IO.StreamReader(Server.MapPath("Student.xml"));
dataSet.ReadXmlSchema(streamReader);
streamReader.Close();

      4.  ReadXmlSchema(XmlReader reader):读取存在于XmlReader的XML Schema。

             //使用XmlReader
DataSet dataSet = new DataSet();
//XmlTextReader是XmlReader的派生类
System.IO.FileStream fileStream = new System.IO.FileStream("Student.xml", System.IO.FileMode.Open);
System.Xml.XmlTextReader xmlReader = new System.Xml.XmlTextReader(fileStream);
dataSet.ReadXmlSchema(xmlReader);
xmlReader.Close();

    DataSet对象还提供了一个ReadXml方法来读取XML文件或流。

    ReadXml方法对于每一种XML数据来源(流、文件、TextReader和XmlReader),都提供了两种形式的重载函数:

      1.仅包含一个指定XML数据来源的参数。

      2.包含指定XML数据来源的参数和指定读取数据时生成数据模式Schema的行为。

  DataSet写出XML数据

    DataSet对象使用一个GetXml方法来将数据导出为一个XML字符串,使用GetXmlSchema方法将数据的组织模式导出为一个XML Schema字符串。

    DataSet还提供了WriteXml和WriteXmlSchema方法来把DataSet对象中的数据和Schema以XML的形式写出。

  Dom对象与DataSet对象的同步化

    在.NET框架里,程序员可以使用DOM对象和DataSet对象这两种数据视图对同一数据进行操作,并且这种操作是同步的。

    .NET框架提供了一个XmlDataDocument类来实现与DataSet对象的同步化。XmlDataDocument类是XmlDocument类的一个派生类,该类不仅可以将XML文档载入内存中,这些载入内存中的结构化数据可以被DataSet对象获取和操纵,而且由于XmlDataDocument类是XmlDocument类的派生,它可以应用在任何使用XmlDocument对象的地方。

    当DataSet与XmlDataDocument同步时,这两个对象都可使用同一组数据。这意味着如果对DataSet作出更改,更改将在XmlDataDocument中得到反映,反之亦然。

    使DataSet与XmlDataDocument同步,常见的方法如下。

      1. 使用架构(即关系结构)和数据填充 DataSet,然后使其与新 XmlDataDocument 同步。这将提供现有关系数据的分层视图。

      2. 创建一个新的XmlDataDocument并从XML文档中加载,然后使用XmlDataDocument的DataSet属性访问数据的关系视图。若要使用DataSet查看mlDataDocument中的数据,需要先设置DataSet的架构。当然,DataSet架构中的表名称和列名称必须要与其同步的XML元素的名称匹配,该匹配区分大小写。

XML数据绑定

  ASP.NET提供了一个XML控件,该控件可以方便地在页面上显示XML数据。XML控件具有以下两个属性:

    1.DocumentSource:该属性用来指定要显示的XML数据文件。

    2.TransformSource:该属性用来指定转换XML数据的XSL文件。

  在GridView控件显示XML数据,可以使用数据源控件XmlDataSource,此控件允许从一个文件读取XML数据,然后把数据填充到GridView控件中。

  XML控件的使用:

    添加XML文件Student.xml,代码如下:

 <?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<name>李莹</name>
<sex>女</sex>
<age>23</age>
</Student>
<Student>
<name>吴楠</name>
<sex>女</sex>
<age>20</age>
</Student>
<Student>
<name>王宇</name>
<sex>男</sex>
<age>23</age>
</Student>
</Students>

    添加XSL文件style1.xsl,代码如下:

 <?xml version="1.0" encoding="gb2312"?>

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:template match="Students">
<html>
<body>
<table>
<tr>
<th>name</th>
<th>sex</th>
<th>age</th>
</tr>
<xsl:for-each select="Student">
<tr>
<td>
<xsl:value-of select="name"/>
</td>
<td>
<xsl:value-of select="sex"/>
</td>
<td>
<xsl:value-of select="age"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

    在Form1.aspx中添加XML控件,并设置属性,代码如下:

     <div>
<asp:Xml ID="Xml1" runat="server" DocumentSource="~/Student.xml" TransformSource="~/style1.xsl">
</asp:Xml>
</div>

  在GridView控件显示XML数据,可以使用数据源控件XmlDataSource,此控件允许从一个文件读取XML数据,然后把数据填充到GridView控件中。

    使用XmlDataSource控件把XML数据绑定到GridView控件中:

      添加XML文件Student.xml,代码如下:

 <?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<name>李莹</name>
<sex>女</sex>
<age>23</age>
</Student>
<Student>
<name>吴楠</name>
<sex>女</sex>
<age>20</age>
</Student>
<Student>
<name>王宇</name>
<sex>男</sex>
<age>23</age>
</Student>
</Students>

      在Form1.aspx中添加XmlDataSource和GridView控件,并设置属性,代码如下:

     <div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Student.xml" />
<asp:GridView ID="GridView1" runat="server" DataSourceID="XmlDataSource1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="姓名">
<ItemTemplate><%#XPath ("name") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="性别">
<ItemTemplate><%#XPath ("sex") %>></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="年龄">
<ItemTemplate><%#XPath ("age") %>></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>

      使用XmlDataSource控件把XML数据绑定到TreeView控件中:

        添加XML文件Student.xml,代码如下:

 <?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<name>李莹</name>
<sex>女</sex>
<age>23</age>
</Student>
<Student>
<name>吴楠</name>
<sex>女</sex>
<age>20</age>
</Student>
<Student>
<name>王宇</name>
<sex>男</sex>
<age>23</age>
</Student>
</Students>

        在Form1.aspx中添加XmlDataSource和TreeView控件,设置属性并添加数据绑定,代码如下:

     <div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Student.xml" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">
<DataBindings>
<asp:TreeNodeBinding DataMember="Students" Text="学生列表" />
<asp:TreeNodeBinding DataMember="Student" TextField="stuName" />
<asp:TreeNodeBinding DataMember="sex" TextField="#InnerText" />
<asp:TreeNodeBinding DataMember="age" TextField="#InnerText" />
</DataBindings>
</asp:TreeView>
</div>

ASP.NET XML文件的更多相关文章

  1. asp.net 生成xml文件 与 asp生成xml文件

    一.asp.net 生成xml文件 webservice方式,调用接口: public XmlDocument List() { XmlDocument doc = new XmlDocument() ...

  2. ASP对XML的增、删、改、查

    首先看一下xml文件 text.xml 'encoding使用gb2312中文,如果要用英文则用utf-8 <?xml version="1.0" encoding=&quo ...

  3. Python实现XML文件解析

    1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...

  4. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  5. 在asp.net 中应用POST传递和接收XML文件以及参数.(转)

    使用POST方式可以向别的页面发送请求,并获取返回结果. 可以从一个页面发送POST到另一个页面,也可以在winform工程中使用HTTPRequest发送POST到一个页面.我们拿ASP.NET的a ...

  6. asp.net创建XML文件方法

    方法一:按照XML的结构一步一步的构建XML文档.    通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的 方法一:按照XML的结 ...

  7. ASP.NET通过http/https的POST方式,发送和接受XML文件内容

    本文转载:http://hi.baidu.com/ysyhyt/item/5011ae39ce3cf49fb80c0395 本文参考:http://blog.csdn.net/ououou123456 ...

  8. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  9. ASP.NET写入和读取xml文件

    xml是一种可扩展标记语言,在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等.它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 ...

随机推荐

  1. BootStrap3栅格系统与布局

    栅格系统与布局 Use our powerful mobile-first flexbox grid to build layouts of all shapes and sizes thanks t ...

  2. A Simple Problem with Integers-POJ3468

    Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...

  3. Eclipse-Java代码规范和质量检查插件-SonarLint

    SonarQube(Sonar)之前的提供的本地工具是需要依赖SonarQube服务器的,这样导致其运行速度缓慢. 新出的SonarLint的扫描引擎直接安装在本地,速度超快,实时探测代码技术债务,给 ...

  4. NetworkManager的坑(如何让network manager不去管理网络端口)

    在CentOS上,有时你需要停止并禁用 NetworkManager.但这样做了之后,其实NetworkManager还在影响着你的端口. 比如你有端口配置如下: [root@compute02 ~] ...

  5. 上下文( Contexts )

    在 Indy9 的服务器中,链接特定(connection specific)的数据被作为线程类的一部分被存储. 实现这个要不然通过使用 thread.data 属性要不然通过继承对应的 thread ...

  6. SAS学习笔记 - 基本原理与概念

    1.赋值符号 由一个尖括号和一个符号组成,可以从左到右也可以从右到左,即“->”或者“<-”. 赋值号也可以使用等号“=”. 如果对象已经存在,那么原先的值会被覆盖.除了可以赋一个数值,还 ...

  7. Linux/UNIX之进程环境

    进程环境 进程终止 有8种方式使进程终止,当中5中为正常终止,它们是 1)      从main返回 2)      调用exit 3)      调用_exit或_Exit 4)      最后一个 ...

  8. &times变成x

    昨天晚上遇到一个很尴尬的bug. 当使用IE浏览器,跳转链接使用&传参的时候第二个参数是times,也就是&times(你有可能看到的是x,实际是&times),结果& ...

  9. Android Studio 使用 SVN 必然遇到问题:commit ** File out of data 问题解决方法

    转载请注明:http://blog.csdn.net/lrs123123/article/details/44829579 Android Studio 的使用已经越来越成为趋势.而结合版本号控制工具 ...

  10. easyUI 动态添加窗体

    有一张页面A,在页面开头引用了jquery.easyUI.min.js. 现在想达到这么一种效果,点击页面A的一个按钮,弹出一个easyUI窗体.因为想分模块的原因,这个窗体对应的是另一张页面B.在点 ...