asp.net考前复习——读写XML数据
准备:参考实验7,建立学生选课数据库,包含stu学生信息表,cdb课程信息表和scdb选课信息表
1、dataset-->xml文件,XML架构文件
建立到数据库的连接,生成数据集。增加并设置datagrid,在页面的load( )方法中填充dataSet。
使用dataSet1.WriteXml("e:\\a.xml"); //路径根据机器设置
注意:要设置相关目录为“可写”。
2、读取XML文件-->dataset
在页面的load方法或按钮的click方法里,写代码:
dataSet1.Tables.Clear();
this.dataSet1.ReadXml(Server.MapPath("a.xml")); //保证在项目的跟目录里有文件a.xml。
// 使用datagrid,显示数据。最后应进行数据绑定:
this.DataBind();
3、创建嵌套的 XML 数据
1)建立2个DataAdapter,分别对应sc和student,填充同一个数据集,填充过程应该是先student表后sc表。
2)代码:
//建立关系
DataColumn
dc1=this.dataSet11.student.sidColumn;//学生表
DataColumn
dc2=this.dataSet11.sc.sidColumn;//选课表
DataRelation dr=new
DataRelation("sre",dc1,dc2);
this.dataSet11.Relations.Add(dr);
//在关系的Nested属性为假时,查看XML文件
this.dataSet11.WriteXml("e:\\rexml.xml");
//在关系的Nested属性为真时,查看XML文件,注意元素的嵌套关系
this.dataSet11.Relations["FK_sc_student"].Nested=true;
this.dataSet11.WriteXml("e:\\rexml2.xml");
4、使用XmlDataDocument和XslTransform进行格式转换
准备:导入命名空间System.Xml和System.Xml.Xsl; 从工具箱中增加无类型的dataset1。
该例子是从XML装入文件,进行格式转换
this.dataSet1.ReadXml("e:\\Employees.xml");
XmlDataDocument xmldoc=new
XmlDataDocument(this.dataSet1);
//创建转换对象
XslTransform xslt=new XslTransform();
xslt.Load(@"e:\Employees2.xsl");
XmlTextWriter writer=new
XmlTextWriter("e:\\x.htm",System.Text.Encoding.UTF8);
xslt.Transform(xmldoc,null,writer);
writer.Close();
5、使用XPathNavigator在XML文件中进行节点查找
准备:导入命名空间
using System.Xml;
using System.Xml.XPath;
代码:
XPathDocument Doc = new
XPathDocument(Server.MapPath("employees.xml"));
XPathNavigator navigator = Doc.CreateNavigator();
XPathNodeIterator iterator
=navigator.Select("/employees/employee");
while (iterator.MoveNext())
{
this.Label1.Text+=iterator.Current.Name.ToString();
this.Label1.Text+=iterator.Current.Value.ToString()+"\n";
}
6、使用XML Web 服务器控件格式化显示XML文档
在页面上增加XML Web 服务器控件,设置其DocumentSource和TransformSource属性,运行程序,查看显示结果。
7、以内联的方式将XML文件内容包含在XML Web 服务器控件中
在页面上增加XML Web 服务器控件,设置其TransformSource属性。转到HTML模式下,将XML内容放在XML Web 服务器控件标志之间,代码如下:
<asp:Xml id="Xml1"
runat="server" TransformSource="Employees2.xsl">
<employees>
<employee>
<name>Stuart
Munson</name>
<salary>23500</salary>
<jobtitle>Programmer</jobtitle>
<region>
</employee>
<employee>
<name>Robert
Brown</name>
<salary>51000</salary>
<jobtitle>Tester</jobtitle>
<region>
</employee>
<employee>
<name>Carol
Philips</name>
<salary>45000</salary>
<jobtitle>System
Architect</jobtitle>
<region>
</employee>
<employee>
<name>James
Smith</name>
<salary>72000</salary>
<jobtitle>Project
Manager</jobtitle>
<region>
</employee>
</employees>
</asp:Xml>
-------------------------------------------------
!!!作者:木由水 http://www.cnblogs.com/muyoushui