温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用XmlDocument怎么对Xml文档进行读写操作

发布时间:2021-07-22 17:18:41 来源:亿速云 阅读:146 作者:Leah 栏目:编程语言

这篇文章将为大家详细讲解有关使用XmlDocument怎么对Xml文档进行读写操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

通过XmlDocument读写Xml文档

有如下一段Xml:

<?xml version="1.0" encoding="utf-8" ?> <students>   <!--我是一段注释文字-->   <student name="张平">     <courses>       <course name="语文?">         <teacherComment>           <![CDATA[         这里是语文老师的批注         ]]>         </teacherComment>           </course>       <course name="数学">         <teacherComment>           <![CDATA[         这里是数学老师的批注         ]]>         </teacherComment>       </course>     </courses>   </student> </students>

1.如何使用XmlDocument读取Xml

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

/*玉开博客 http://www.php.cn/ */ 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.net\example\XmlExample\1.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("\r\nPress 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,如下代码:

/*玉开博客 http://www.php.cn/ */ 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声明部分,即<?xml version="1.0" encoding="utf-8" ?>             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("<font color=\"red\">这是语文老师的批注</font>");             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文档进行读写操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI