C#操作Xml:通过XmlDocument读写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> |
/*玉开博客 http://www.cnblogs.com/yukaizhao/ */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(); } }} |
/*玉开博客 http://www.cnblogs.com/yukaizhao/ */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到节点的属性集合。
C#操作Xml:通过XmlDocument读写Xml文档的更多相关文章
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
一.新建Demo2类: import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXPar ...
- Visual Studio 2008(C#)XML注释提取成帮助文档的方法
Visual Studio 2008(C#)XML注释提取成帮助文档的方法 1.给方法和类添加XML注释 可以手动添加,具体规则可以看MSDN:http://msdn.microsoft.co ...
- 通过XmlDocument读写Xml文档参考地址
/// <summary> /// 获取一个报表的参数 http://blog.csdn.net/hdhai9451/article/details/12170069 /// </s ...
- C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)
这篇博客将要讨论的是关于: 如何从C#的source以及注释, 生成一份Word格式的关于各个类,函数以及成员变量的说明文档. 他的大背景如下...... 最近的一个项目使用C#, 分N个模块, 在项 ...
- dom4j的读写xml文件,读写xml字符串
百度了一些博客,大同小异,在选取jar包工具的时候大概看了下,大抵是jdom原始,dom4j优秀.于是做了些练习. 参考:http://www.cnblogs.com/mengdd/archive/2 ...
- Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)
OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目 ...
- 使用多个项目生成Xml文件来显示帮助文档
终于到这了,我们首先将Product单独作为一个项目 WebAPI2PostMan.WebModel 并引用他,查看文档如下. 你会发现,你的注释也就是属性的描述没有了.打开App_Data/XmlD ...
- C#演示如何使用 XML 将源码编入文档
工作闲暇时间,将做工程过程中常用的代码段记录起来,下面的代码是关于C#演示如何使用 XML 将编入文档的代码,希望对大伙有较大帮助. using System; public class SomeCl ...
- 使用.NET中的XML注释(二) -- 创建帮助文档入门篇
一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. 二.背景 要生成帮助文 ...
随机推荐
- 大约apache 2.4.X虚拟主机配置问题的版本号后,
重装系统,习惯性下载最新的wamp2.5,在各种配置,然后一切正常反应.数据库,代码. 然后打开浏览器,尼嘛,幸运的是,昨天,与虚拟域,其实403该. apache error log的信息是:AH0 ...
- css--左右visibility建立 “collapse”值问题
1.您可能已使用visibility一千次,最常用的是visible和hidden.它用来显示或隐藏元素. 有第三很少已使用的值它是collapse,在表格的行,列中使用有差异外,他和hidden的作 ...
- MySQL各种日期类型与整型(转)
日期类型 存储空间 日期格式 日期范围 datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 t ...
- 【数据库摘要】4_Sql_Like
SQL LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. SQL LIKE 语法 SELECT column_name(s) FROM table_name WHERE ...
- HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)
Harry Potter and the Hide Story Problem Description iSea is tired of writing the story of Harry Pott ...
- 【C语言探索之旅】 第二部分第四课:字符串
内容简介 1.课程大纲 2.第二部分第四课: 字符串 3.第二部分第五课预告: 预处理 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. ...
- Swift和C#的基本语法对比
Recently, Apple announced and released a beta version of the new Swift programming language for buil ...
- JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms ...
- 大教堂与集市(The Cathedral and the Bazaar)读书笔记
大教堂与集市The Cathedral and the Bazaar,一本不像计算机方面的计算机书籍 命令式管理,适合和奴隶共事目标共识型管理,适合和自由人共事 心性气层 只要眼多,bug好找 黑客开 ...
- Cordova WP8 平台安装部署
原文:Cordova WP8 平台安装部署 Cordova是一个开放源码移动开发框架. 它允许您使用标准的 web 技术如 HTML5. CSS3 和 JavaScript 进行跨平台开发,避免每个移 ...