Xml是扩展标记语言的简写,是一种开发的文本格式。关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210。如果你不知道它,那你就out太多了。
.Net是如何处理Xml的?
1.通过XmlDocument读写Xml文档
2.通过XmlWriter和XmlReader读写Xml文档
3.使用Link to xml存取XML
4.通过XmlScheme定义固定格式xml文档
5.Xml序列化或者反序列化类
6.通过XPath查找Xml节点
7.通过Xslt转化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.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()); } }Javascript元编程创建DOM节点 } } Console.Write("\r\nPress any key to continue...."); Console.Read(); } } }