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. POJ2632 Crashing Robots 解题报告

    Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is neede ...

  2. crontab not running

    there are mutliple ways to describle this issue 1. crontab not running 2. crontab not running and no ...

  3. ppc_85xx-gcc -shared -fPIC liberr.c -o liberr.so

    fPIC作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),   则产生的代码中,没有绝对地址,所有使用相对地址.故而代码能够被载入器载入到内存的随意 ...

  4. 手把手教你编写一个简单的PHP模块形态的后门

    看到Freebuf 小编发表的用这个隐藏于PHP模块中的rootkit,就能持久接管服务器文章,很感兴趣,苦无作者没留下PoC,自己研究一番,有了此文 0×00. 引言 PHP是一个非常流行的web ...

  5. ArcGIS 教程:Workflow Manager 高速浏览

    应用程序概述 Workflow Manager 用户界面提供了用于在整个作业的生命周期中创建和管理作业的工具. 下面全部信息将会在本帮助文档的兴许章节中进行具体的说明. 文件菜单 新建 - 在系统中创 ...

  6. phpmywind教程:关于日期函数调用整理

    近期群里一直在问phpmywind的日期函数怎么调用,今天抽出时间给大家整理出来. 以月/日格式显示: <?php echo MyDate('m-d', $row['posttime']); ? ...

  7. 工作总结 for 另类写法 循环加时间 集合合并 也是用的 static class Enumerable (IEnumerable<T>的扩展方法) (IEnumerable<T> 的 工具类) (所有集合 数组都实现IEnumerable<T>)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. 免安装版TOMCAT配置及问题解决方法

    前言 本文将介绍下面几点内容: 1.Tomcat的配置过程 2.启动startup过程中遇到的问题的解决 3.假设遇到本文中没有提到的问题怎样解决 配置 计算机右击->属性->高级系统设置 ...

  9. Oracle学习(四):组函数

    1.知识点:能够对比以下的录屏进行阅读 SQL> --组函数类型:avg,count,max.min,sum SQL> --工资总额 SQL> select sum(sal) fro ...

  10. Codeforces Round #311 (Div. 2)C. Arthur and Table

    C. Arthur and Table time limit per test 1 second memory limit per test 256 megabytes input standard ...