VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • c#操作XML

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  引用命名空间:using System.Xml

  1.检查所要操作的xml文件是否存在:

   System.IO.File.Exists(文件路径及名称);

  2.得到xml文件:

  (1)在asp.net中可以这样得到:

XmlDocument xmlDoc = new XmlDocument();

  //导入xml文档

xmlDoc.Load( Server.MapPath("xmlTesting.xml"));

  //导入字符串

//xmlDoc.LoadXml("<bookStore> <book id="01" price="3.5元"> 读者</book></bookStore>");

  注:Server.MapPath("xmlTesting.xml")此时的xmlTesting.xml文件必须是在当前的解决方案里;同样可以写成完整的物理路径xmlDoc.Load (@"E:"软件学习"测试"myNoteWeb"xmlTesting.xml")

  (2)在windForm中 直接用物理路径得到所要操作的xml文件具体实现方法同上

  3.创建xml文件:

 XmlDocument xmlDoc = new XmlDocument(); //创建xml文档(实例化一个xml)

XmlNode root = xmlDoc.CreateElement("bookStore");//创建根节点

  //创建第1个子结点:

XmlNode bookNode = xmlDoc.CreateElement("book");

bookNode.InnerText = "读者";

//为此节点添加属性

  法1:

 bookPublishNode.SetAttribute("id", "01")

 root.AppendChild(bookNode);

  法2:

XmlAttribute xmlattribute = tempXmlDoc.CreateAttribute("price");

 xmlattribute.Value = "3.5元";

 tempRoot .Attributes .Append (xmlattribute )

 //创建第2个根节点的子结点:

 XmlNode tempBookNode = xmlDoc.CreateElement("tempbook ");

 tempBookNode.InnerText ="文摘";

 root.AppendChild(tempBookNode);

 xmlDoc.AppendChild(root); //将根节点添加到xml文档中

 try

{

xmlDoc.save(“bookInfo.xml”);//xml将保存到当前解决方案的目录下

}

catch (Exception ex)

{              

 MessageBox.Show(ex.Message); //显示错误信息

}

得到的xml文档如下:

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

<bookStore>

 <book id ="01" price="3.5元">

    读者

 </book>

 

 <tempbook id ="02">

    文摘

 </tempbook >

 

</bookStore>

 

  4.读取,修改xml信息

tempTesting.xml文件的内容如下:

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

<bookStore>

 <book id="01" price="3.5元">

    读者

 </book>

 <book id="02" price="5元">

    <bookname>百家讲坛</bookname>

    <bookpublish>文学出版社</bookpublish>

 </book>

 <tempbook id="0000">漫画tempbook>

 

</bookStore>

  (1)      得到xml文件的xml信息

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load( Server.MapPath("xmlTesting.xml"));

 XmlNode root=xmlDoc.DocumentElement

  ;

  (2)      得到节点

//得到id为2book节点下的所有节点

XmlNodeList xmlNodes = root.SelectNodes("//book[@id='02']//*");

XmlNode tempNode = xmlNodes[0];//得到第一个节点

//将tempbook强制转化为XmlElement

XmlElement xmlelement = (XmlElement)root.SelectSingleNode("tempbook");

  (3)      修改节点内容

XmlNode tempBook = root.SelectSingleNode("tempbook");//修改节点内容

tempBook. InnerText="漫画";

  (4)得到节点的属性值并修改:

 

//得到节点的属性

 //法1

XmlAttributeCollection attrbute= tempBook.Attributes;

string bookID = attrbute[0].Value;

//法2:

string bookid = tempBook.Attributes[0].Value.ToString();

//修改节点属性的值

tempBook.Attributes[0].Value = "0000";

  (5)添加一个根节点

XmlNode node = xmlDoc.CreateElement("testing");

node.InnerText = "testing";

root.AppendChild(node);

  (6)保存修改后的文档

xmlDoc.Save(Server.MapPath("tempTesting.xml"));

******其他:

  (一)显示xml信息

  1以xml文档的样式显示:xmlDoc.outerxml;

  2.显示各个节点

XmlNode root = xmlDoc.DocumentElement;//得到根节点:

            if (root.ChildNodes.Count > 0)

            {

                XmlNode xmlnode = root.FirstChild;//得到子结点:

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

                {

                    MessageBox.Show(xmlnode.FirstChild .InnerText);

                    xmlnode = xmlnode.NextSibling;或mlNode subNode2 = root.LastChild;

                }

            }

            else

                MessageBox.Show("没有内容!");

 

  (二)将数据库的信息导入为xml

XmlDocument xmlDocItem = new XmlDocument();

DataSet ds = GetDataSet(strtsql);//调用方法从数据库中得到DataSet。

xmlDocItem.LoadXml(ds .GetXml ());//导入xml中;

*****************************以下是在网络上找到的关于C#操作xml文件的总结***

一:创建并保存xml文件
string FileName =Application.StartupPath+"""phone.xml";

XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);

 

            objXmlTextWriter.Formatting = Formatting.Indented;

            objXmlTextWriter.Indentation = 6;

            objXmlTextWriter.WriteStartDocument();

            objXmlTextWriter.WriteStartElement("", "PhoneBook", "");

            objXmlTextWriter.WriteStartElement("", "Name", "");

            objXmlTextWriter.WriteString("加菲尔德");

            objXmlTextWriter.WriteEndElement();

            objXmlTextWriter.WriteStartElement("", "Number", "");

            objXmlTextWriter.WriteString("5555555");

            objXmlTextWriter.WriteEndElement();

            objXmlTextWriter.WriteStartElement("", "City", "");

            objXmlTextWriter.WriteString("纽约");

            objXmlTextWriter.WriteEndElement();

            objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");

            objXmlTextWriter.WriteString("26/10/1978");

            objXmlTextWriter.WriteEndElement();

            objXmlTextWriter.WriteEndElement();

            objXmlTextWriter.WriteEndDocument();

            objXmlTextWriter.Flush();

            objXmlTextWriter.Close();

 

   这段代码在win2003ser+vs2005环境下测试通过,出来的效果很好,也比较容易理解,我一般就是用这段代码创建XML文件。

  二、读取、修改XML文件的某个节点的值

            string path = "phone.xml";

            XmlDocument doc = new XmlDocument();

            doc.Load(path);

            //读所有节点表

            XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);

            //读取节点值

            XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm); //node.InnerText 就是读取出来的值

            //修改节点值

            node.InnerText="要修改的内容";

            //保存修改后的内容

            doc.Save(path);

  总结:在.net中using System.Xml命名空间下中有很多类和方法,我们可以在用到时在网络或是msdn中查到相关的信息和实例

 

 

  4.读取,修改xml信息

tempTesting.xml文件的内容如下:

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

<bookStore>

 <book id="01" price="3.5元">

    读者

 </book>

 <book id="02" price="5元">

    <bookname>百家讲坛</bookname>

    <bookpublish>文学出版社</bookpublish>

 </book>

 <tempbook id="0000">漫画tempbook>

 

</bookStore>

  (1)      得到xml文件的xml信息

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load( Server.MapPath("xmlTesting.xml"));

 XmlNode root=xmlDoc.DocumentElement

  ;

  (2)      得到节点

//得到id为2book节点下的所有节点

XmlNodeList xmlNodes = root.SelectNodes("//book[@id='02']//*");

XmlNode tempNode = xmlNodes[0];//得到第一个节点

//将tempbook强制转化为XmlElement

XmlElement xmlelement = (XmlElement)root.SelectSingleNode("tempbook");

  (3)      修改节点内容

XmlNode tempBook = root.SelectSingleNode("tempbook");//修改节点内容

tempBook. InnerText="漫画";

  (4)得到节点的属性值并修改:



相关教程