栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

详解通过XmlDocument读写Xml文档的示例代码

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解通过XmlDocument读写Xml文档的示例代码

通过Xmldocument读写Xml文档

有如下一段Xml:

                                                                                              

1.如何使用Xmldocument读取Xml

我要用一段代码遍历所有Student,并打印Student的所有属性和子节点的值

using System;using System.Collections.Generic;using System.Text;using System.Xml;namespace XmlExample{    class Program    {        static void Main(string[] args)        {            string xmlFilePath = @"X:about.netexampleXmlExample1.xml";            Xmldocument doc = new Xmldocument();            doc.Load(xmlFilePath);            //使用xpath表达式选择文档中所有的student子节点            XmlNodeList studentNodeList = doc.SelectNodes("/students/student");            if (studentNodeList != null)            {                foreach (XmlNode studentNode in studentNodeList)                {                    //通过Attributes获得属性名字为name的属性                    string name = studentNode.Attributes["name"].Value;                    Console.WriteLine("Student:" + name);                    //通过SelectSingleNode方法获得当前节点下的courses子节点                    XmlNode coursesNode = studentNode.SelectSingleNode("courses");                    //通过ChildNodes属性获得courseNode的所有一级子节点                    XmlNodeList courseNodeList = coursesNode.ChildNodes;                    if (courseNodeList != null)                    {                        foreach (XmlNode courseNode in courseNodeList)                        {                            Console.Write("t");                            Console.Write(courseNode.Attributes["name"].Value);                            Console.Write("老师评语");                            //通过FirstNode属性可以获得课程节点的第一个子节点,LastNode可以获得最后一个子节点                            XmlNode teacherCommentNode = courseNode.FirstChild;                            //读取CData节点                            XmlCDataSection cdata = (XmlCDataSection)teacherCommentNode.FirstChild;                            Console.WriteLine(cdata.InnerText.Trim());                        }                    }                }            }            Console.Write("rnPress any key to continue....");            Console.Read();        }    }}



Xmldocument本身是从XmlNode继承的,读Xml节点可以通过FirstChild,LastChild,或者NextSibling,PreviousSibling读取单个节点,或者通过ChildNodes读取所有子节点。还可以使用XPath表达式使用SelectNodes(string xpath)或者SelectSingleNode(string xpath)读取单个或者多个符合条件的节点。


2.如何通过Xmldocument编辑Xml


同样是读取Xml中的xml例子,我们这次要用csharp代码生成xml,如下代码:


using System;using System.Collections.Generic;using System.Text;using System.Xml;namespace WriteXml{    class Program    {        static void Main(string[] args)        {            Xmldocument xmlDoc = new Xmldocument();            //创建Xml声明部分,即            xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");            //创建根节点            XmlNode rootNode = xmlDoc.CreateElement("students");            //创建student子节点            XmlNode studentNode = xmlDoc.CreateElement("student");            //创建一个属性            XmlAttribute nameAttribute = xmlDoc.CreateAttribute("name");            nameAttribute .Value = "张同学";            //xml节点附件属性            studentNode.Attributes.Append(nameAttribute);                       //创建courses子节点            XmlNode coursesNode = xmlDoc.CreateElement("courses");            XmlNode courseNode1 = xmlDoc.CreateElement("course");            XmlAttribute courseNameAttr = xmlDoc.CreateAttribute("name");            courseNameAttr.Value = "语文";            courseNode1.Attributes.Append(courseNameAttr);            XmlNode teacherCommentNode = xmlDoc.CreateElement("teacherComment");            //创建Cdata块            XmlCDataSection cdata = xmlDoc.CreateCDataSection("这是语文老师的批注");            teacherCommentNode.AppendChild(cdata);            courseNode1.AppendChild(teacherCommentNode);            coursesNode.AppendChild(courseNode1);            //附加子节点            studentNode.AppendChild(coursesNode);            rootNode.AppendChild(studentNode);            //附加根节点            xmlDoc.AppendChild(rootNode);            //保存Xml文档            xmlDoc.Save(@"d:test.xml");            Console.WriteLine("已保存Xml文档");        }    }}

使用Xmldocument生成xml的要点在于使用xmldocument的实例的CreateElement创建XmlNode或者通过CreateAttribute方法创建属性,并通过AppendChild方法附加xml节点,通过AppendAttribute附加Attribute到节点的属性集合。

以上就是详解通过Xmldocument读写Xml文档的示例代码的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号