XML(可扩展标记语言),提供了一种保存数据的格式,数据可以通过这种格式很容易得在不同的应用程序之间实现共享。XML是专为Web设计的,.NET也把XML作为应用程序之间传递数据的一种主要方法。
一、XML的应用
1.数据交换
XML使用元素和属性来描述数据,在数据传送过程中,XML始终保留着诸如父、子关系这样的数据结构。几个应用程序可以共享和解析解析同一个XML文件。
2.Web服务
Web服务使得不同系统和不同编程语言的人们能相互交流和共享数据。比如一个C#对象可以与Java对象进行通信,这种通信甚至可以发生在运行与不同操作系统的对象之间。
3.内容管理
XML使用元素和属性来描述数据,而不提供数据的显示方法。这样,XML就提供了一个优秀的方法来标记独立于平台和语言的内容。XML具有能运行于不同系统平台之间和转换成不同格式目标文件的能力使得它成为内容管理应用系统中的优秀选择。
4.web集成
现在越来越多设备支持XML了。使得Web开发商可以在电子助理和浏览器之间用XML来传递数据。
5.配置文件
许多应用都讲配置数据存储在各种文件里,如.INI文件。但是使用.NET里的类,如XMLDocument和XMLTextReader,将配置数据标记为XML格式,能使其更具可读性,并能方便的集成到应用系统中去。而不用像其他应用那样要经过重新编译才能修改和维护应用系统。
二、XML的基本结构
<?xml version="1.0" encoding="utf-8" ?>
<students>
<student>
<name>Landy</name>
<sex>女</sex>
<grade>一年级</grade>
</student>
<student>
<name>Landy</name>
<sex>女</sex>
<grade>一年级</grade>
</student>
</students>
三、XML数据显示
1.使用XSL(可扩展样式表语言)显示XML
新建项中添加一个XSLT文件,添加代码如下:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<html>
<body>
<h2>学生信息</h2>
<table border="1">
<tr bgcolor="#ff6ee7">
<th>姓名</th>
<th>性别</th>
<th>年级</th>
</tr>
<xsl:for-each select="students/student">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="sex"/></td>
<td><xsl:value-of select="grade"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
然后新建一个aspx页面,从标准工具箱中拖入一个XML控件,设置属性DocumentSource和TransformSource分别指向xml文件和xslt文件,即可将xml中数据用表格方式展示。
2.使用CSS显示XML
在新建项目中添加样式表命令,新建CSS样式表StyleSheet1.css,添加代码如下:
name
{
font-family:宋体, Arial;
font-size:large;
}
sex,name,grade
{
font-family:宋体, Arial;
font-size:small;
}
在 studentinfo.xml插入如下代码:
<?xml-stylesheet href="StyleSheet1.css" type="text/css"?>
效果如下:
四、使用ADO.NET访问XML
1.将数据库数据转换成XML
protected void Page_Load(object sender, EventArgs e)
{
//从数据库中读取出数据库连接字符串
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
//创建连接对象
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
//创建DataSet对象
DataSet ds = new DataSet();
//打开连接
sqlconn.Open();
//创建适配器对象
SqlDataAdapter sqld = new SqlDataAdapter("select name,sex,grade from student",sqlconn);
//利用适配器方法添加数据给DataSet
sqld.Fill(ds,"student");
//将DataSet数据写成XML文本
ds.WriteXml(Server.MapPath("student.xml"));
sqlconn.Close();
}
程序运行时会保存student.xml文件,和库中student表内容保持一致。
<NewDataSet>
<student>
。。。。
</student>
<student>
。。。。
</student>
</NewDataSet>
2.读取XML文档
使用DataSet的ReadXml方法可以获取所有XML文档数据。
protected void Page_Load(object sender, EventArgs e)
{
//创建DataSet对象
DataSet ds = new DataSet();
//读取XML文本数据到DataSet数据集
ds.ReadXml(Server.MapPath("student.xml"));
//绑定数据源
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
3.编辑XML文档
通过ReadXml读取xml文件后,通过循环修改每行数据,然后使用WriteXml在将xml保存即可。
4.将XML写入数据库
使用SQLDataAdapter的update方法进行修改即可。
5.将XML数据转换成字符串
调用DataSet的ReadXml方法读取xml数据源之后,使用DataSet的GetXml方法即可转化为字符串。
五、使用.NET 的XML类访问XML
通过System.xml命名空间为开发人员提供而操作XML的所有功能,该命名空间包含很多类,如:XMLReader、XMLWriter、XMLNode、XMLDocument等,和DataSet读写类似,遇见百度 即可。