标签:des blog http color io 使用 ar strong for
什么是Xml?
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格式
有如下一段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的所有属性和子节点的值
- 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);
-
-
- XmlNodeList studentNodeList = doc.SelectNodes("/students/student");
- if (studentNodeList != null)
- {
- foreach (XmlNode studentNode in studentNodeList)
- {
-
- string name = studentNode.Attributes["name"].Value;
- Console.WriteLine("Student:" + name);
-
-
- XmlNode coursesNode = studentNode.SelectSingleNode("courses");
-
-
- XmlNodeList courseNodeList = coursesNode.ChildNodes;
- if (courseNodeList != null)
- {
- foreach (XmlNode courseNode in courseNodeList)
- {
- Console.Write("\t");
- Console.Write(courseNode.Attributes["name"].Value);
- Console.Write("老师评语");
-
- XmlNode teacherCommentNode = courseNode.FirstChild;
-
- 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,如下代码:
- 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();
-
- xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
-
-
- XmlNode rootNode = xmlDoc.CreateElement("students");
-
-
- XmlNode studentNode = xmlDoc.CreateElement("student");
-
- XmlAttribute nameAttribute = xmlDoc.CreateAttribute("name");
- nameAttribute .Value = "张同学";
-
- studentNode.Attributes.Append(nameAttribute);
-
-
-
- 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");
-
- 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);
-
-
- xmlDoc.Save(@"d:\test.xml");
-
- Console.WriteLine("已保存Xml文档");
-
-
- }
- }
- }
使用XmlDocument生成xml的要点在于使用xmlDocument的实例的CreateElement创建XmlNode或者通过CreateAttribute方法创建属性,并通过AppendChild方法附加xml节点,通过AppendAttribute附加Attribute到节点的属性集合。
C#处理Xml相关随笔
1.通过XmlDocument读写Xml文档
2.通过XmlWriter和XmlReader读写Xml文档
3.通过LINK to Xml存取XML
4.通过XmlScheme定义固定格式xml文档
5.Xml序列化或者反序列化类
6.通过XPath查找Xml节点
7.通过Xslt转化Xml格式
.Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档
标签:des blog http color io 使用 ar strong for
原文地址:http://www.cnblogs.com/lschenblog/p/3992093.html