⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmltongxunlu.txt

📁 xml的通讯录 用于web平台的开发 只是大体格式
💻 TXT
字号:
一、数据文件

需要的Xml文件(txl.xml)如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="txl.xsl"?>

<txl>

         <user> 

                  <pic>1.bmp</pic> 

                  <name>ittalk</name> 

                  <tel>51872033</tel> 

                  <qqmsn>7987931</qqmsn> 

                  <mobil>13667181380</mobil> 

                   <work>北大青鸟</work> 

                  <address>北大青鸟武汉赛德</address> 

                  <email>ninesunnine@sina.com</email> 

                  <otherMsg>无</otherMsg> 

         </user> 

         <user> 

                  <pic>2.bmp</pic> 

                  <name>ittalk</name> 

                  <tel>51872033</tel> 

                  <qqmsn>7987931</qqmsn> 

                  <mobil>13667181380</mobil> 

                   <work>北大青鸟</work> 

                  <address>北大青鸟武汉赛德</address> 

                  <email>ninesunnine@sina.com</email> 

                  <otherMsg>无</otherMsg> 

         </user> 

</txl>

 

该XML文件对应的样式表为txl.xsl

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:template match="/">

<table align="center" width="90%" border="1">

         <tbody> 

                   <tr bgcolor="#336699"> 

                            <th>图片</th> 

                            <th>姓名</th> 

                            <th>电话</th> 

                            <th>qq/Msn</th> 

                            <th>手机</th> 

                            <th>工作单位</th> 

                            <th>通信地址</th> 

                            <th>Email</th> 

                            <th>其他信息</th>                       

                   </tr> 

                  <xsl:apply-templates select="/txl/user"/> 

         </tbody> 

 

</table>

</xsl:template>

<xsl:template match="user">

<tr>

         <td><xsl:variable name="x"><xsl:value-of select="pic"/></xsl:variable><img src="{$x}"></img></td> 

         <td><xsl:value-of select="name"/></td> 

         <td><xsl:value-of select="tel"/></td> 

         <td><xsl:value-of select="qqmsn"/></td> 

         <td><xsl:value-of select="mobil"/></td> 

         <td><xsl:value-of select="work"/></td> 

         <td><xsl:value-of select="address"/></td> 

         <td><xsl:value-of select="email"/></td>  

         <td><xsl:value-of select="otherMsg"/></td> 

</tr>

</xsl:template>

</xsl:stylesheet>

         

二、显示Xml文件

使用xsl自动样式显示XML文件步骤:

1、   先定义一个System.IO.StringWriter对象 

2、   创建一个Xml的文档对象,并家载Xml文件 

3、   创建一个XslTransform对象并加载Xsl文件 

4、   调用转换函数(第一个参数Xml文档对象,第二个参数null,第三个参数StringWriter对象,第四个参数null) 

5、   调用Response.Writer方法显示StringWriter对象中的数据。 

//先定义一个System.IO.StringWriter对象

              System.IO.StringWriter sw=new StringWriter();

              //创建一个Xml的文档 

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

              //装载一个Xml文档 

              doc.Load(Server.MapPath("txl.xml"));

              //创建一个System.Xml.Xsl.XslTransform对象 

              System.Xml.Xsl.XslTransform xst=new XslTransform();

              //装载xml文件对应的样式表txl.xsl 

              xst.Load(Server.MapPath("txl.xsl"));

              //利用xst来转换doc的显示 

              xst.Transform(doc,null,sw,null);

              Response.Write(sw.ToString());           

三、在通信录中添加用户

相关知识:

1、  XmlDocument对象是所有DOM树的根,这个根至少有一个子节点,即根元素,该根元素使用DocumentElement表示,还可以有一个根元素,那就是DocumentType表示DTD类型。 

2、  XmlDocument对象的一些属性 

a)         HasChildNodes 

b)        ChildNodes 

c)        ParentNode 

d)        InnerXml属性节点和其子节点的串联值。 

e)         OuterXml表示该节点和其子节点的标记 

如何更新一个文件

1、   先创建一个Xml文档对象,同时加载对应的XML文件 

2、   获取Xml文档对象的根结点root 

3、   创建一个元素,同时给该元素初始化 

4、   在对应的位置放置该元素。 

5、   创建4中元素对应的子元素,同时在4中的元素的下面添加对应的元素。 

6、   记住将修改完毕的XML文件存盘,这时候需要调用XmlDocument对象的Save方法。 

 

              //首先创建一个Xml文档对象,同时加载对应的XML文件 

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

              //加载txl.xml文件 

              doc.Load(Server.MapPath("txl.xml"));

              //定位该文件的根结点 

              XmlNode root=doc.DocumentElement;

              //在doc中创建一个元素user 

              XmlElement user=doc.CreateElement("user");

              //将user元素添加到树根的尾部 

              root.AppendChild(user);

              //在doc中创建一个元素name 

              XmlElement name2=doc.CreateElement("name");

              //设置name元素的文本内容 

              name2.InnerText=name1.Text;

              XmlElement tel1=doc.CreateElement("tel");

              tel1.InnerText=tel.Text;

              XmlElement qqmsn1=doc.CreateElement("qqmsn");

              qqmsn1.InnerText=qqmsn.Text;

              XmlElement mobil1=doc.CreateElement("mobil");

              mobil1.InnerText=mobil.Text;

              XmlElement work1=doc.CreateElement("work");

              work1.InnerText=work.Text;

              XmlElement address1=doc.CreateElement("address");

              address1.InnerText=address.Text;

              XmlElement email1=doc.CreateElement("email");

              email1.InnerText=email.Text;

              XmlElement otherMsg1=doc.CreateElement("otherMsg");

              otherMsg1.InnerText=otherMsg.Text;

 

              //将创建的user元素的子元素添加到user元素的节点内部。 

              user.AppendChild(name2);

              user.AppendChild(tel1);

              user.AppendChild(qqmsn1);

              user.AppendChild(mobil1);

              user.AppendChild(work1);

              user.AppendChild(address1);

              user.AppendChild(email1);

              user.AppendChild(otherMsg1);

              //将对txl.xml文件的修改存入文件 

              doc.Save(Server.MapPath("txl.xml"));

     

四、在通信录中查找一个用户

基本知识:需要读取XML的数据,并进行对照。

1、  要读取XML可以使用XmlReader类,但是该类是一个抽象类,用于读取基于文本的XML文件的XmlTextReader类,实现了XmlReader类。 

2、  当必须通过DOM将文档的一部分读取到内存中的时候,应该使用XmlTextReader类。 

3、  首先创建XmlTextReader类的实例,并调用Read方法来读取文件。 

a)         创建实例的时候可以传递参数为Xml文件 

b)        调用Read()方法逐个读取其节点直至到达文件的结尾。 

 

 

              //声明并创建XmlTextReader类的对象xtr 

              XmlTextReader xtr=new XmlTextReader(Server.MapPath("txl.xml"));

              string wsx="";

              bool flag=false;

              string showMsg="";

              string tmpNodeName="";

              //利用xtr对象的Read()方法循环读取文件的节点 

              while(xtr.Read())

              {

                   //当找到了那个人同时节点的类型是元素同时节点的名称是user的时候退出循环 

                   if(flag==true && xtr.NodeType==System.Xml.XmlNodeType.Element && xtr.LocalName.Equals("user"))

                       break;                   

                   //当节点类型是元素的时候,记录该元素的节点名称 

                   if(xtr.NodeType==System.Xml.XmlNodeType.Element)

                        tmpNodeName=xtr.LocalName.ToString();

                   //当没有找到指定的人时,判断xtr是不是文本类型 

                   if(flag==false)

                   if( xtr.NodeType==System.Xml.XmlNodeType.Text)//如果为文本类型那么           

                        if(xtr.Value==userName.Text)//当为文本类型同时对应的值为要查找的人的时候 

                       {                       

                            flag=true;//设置找到了要找的人的标志 

                       }

                   //如果已经找到了这个人同时xtr当前为文本类型那么 

                   if(flag==true && xtr.NodeType==System.Xml.XmlNodeType.Text)

                        showMsg += " "+tmpNodeName+":"+xtr.Value;

              }

              //关闭xtr 

              xtr.Close();

              //显示找到的人的详细信息 

              Response.Write(showMsg);

         

 

五:利用xmlPath来删除指定节点

 

//首先定义一个文档对象

              XmlDocument doc=new XmlDocument();

              doc.Load(Server.MapPath("txl.xml"));

              XmlNode xn=doc.SelectSingleNode("/txl/user[name=\"" + userName.Text +"\"]");           

              try 

              {

                   XmlNode parentxn=xn.ParentNode;

                   parentxn.RemoveChild(xn);     

              }

              catch(Exception ex)

              {

                   Response.Write(ex.Message.ToString());

              }

              doc.Save(Server.MapPath("txl.xml"));

 

六:利用xmlPath来更新指定的节点

 

              XmlDocument doc=new XmlDocument();

              doc.Load(Server.MapPath("txl.xml"));

              //利用XmlDocument的SelectNodes方法来查找指定的用户名称符合的所有user 

              XmlNode xn=doc.SelectSingleNode("/txl/user[name=\"" + userName.Text +"\"]");

              try 

              {

                   //遍历子节点 

                   for(int i=0;i<xn.ChildNodes.Count;i++)

                   {

 

                   //给对应的子节点的内容赋值 

                        xn.ChildNodes[i].InnerText=(i).ToString();

                   }

                   doc.Save(Server.MapPath("txl.xml"));

                   

              }

              catch( Exception ex)

              {

                   Response.Write(ex.Message);

              }

七、数据转换成DataSet 

              System.Data.DataSet ds=new DataSet();

              ds.ReadXml(Server.MapPath("txl.xml"));

              DataGrid1.DataSource=ds;

              DataGrid1.DataBind();

八、将DataSet的数据写入Xml

                     

              SqlConnection con=new SqlConnection("Server=.;uid=sa;pwd=;database=pubs");

              SqlDataAdapter da=new SqlDataAdapter("select * from authors",con);

              System.Data.DataSet ds=new DataSet();

              da.Fill(ds);

          //将DataSet里面的数据写入XML 

              ds.WriteXml(Server.MapPath("authors.xml"));

              DataGrid1.DataSource=ds;

              DataGrid1.DataBind();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -