购物网站分为几个模块,哪个网站可以做汽车评估,电子商务网站建设与管理课程设计,自己网站建设1.什么是xml#xff1f;
Xml#xff08;Extensible Markup Language#xff09;,可扩展标记语言#xff0c;一种用于存储数据或传输数据的标记语言#xff0c;由万维网#xff08;W3C开发#xff09;。它允许开发人员创建自己的标记#xff0c;且简单易读#xff0c;…1.什么是xml
XmlExtensible Markup Language,可扩展标记语言一种用于存储数据或传输数据的标记语言由万维网W3C开发。它允许开发人员创建自己的标记且简单易读易扩展支持标准的字符编码如UFT-8UTF-16.
2. Xml文档的基本结构
2.1文档声明包括文档版本version、编码格式encoding.
?xml version “1.0”,encoding “UTF-8”?
2.2根元素root element
Xml文档必须包含一个根元素其是xml文档所有元素的父元素如
root !--其他元素--
/root
2.3元素element
是xml文档的基本单位,包含文本和属性,元素用标签来标识,由p开始,/p结束,如:
p这是一个段落/p
2.4属性property
属性是元素的附加信息属性在开始标签中定义并以键值对的形式出现.如
p link “www.baidu.com”这是一个链接/p
2.5注释Comment
注释用于在xml文档中添加解释和说明格式以!--开始以--结束, 如下
!--这是我的注释--
3.C#对xml文档的抽象
C#对xml文件进行了结构的抽象支持xml文档的创建、读、写等操作.
3.1 xml文档被抽象成XmlDocument对象Xml文档对象可以用XmlReader和XmlWriter类对xml文件对象进行读写
3.2 xml文档的元素
被抽象为XmlElement对象这些对象包含了元素的名称属性子元素
3.3 xml文档的属性
XmlAttribute包含了元素的属性名称和值
3.4Xml文档的文本内容
XmlText对象访问文本内容
3.5xml节点处理
XmlNodelistXmlNodeReaderXmlNodeWriter用于xml文档的节点列表,读取,写入xml节点.
以上的类都在System.Xml命名空间下,需要引入.
4.创建xml文件的demo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;namespace _1.创建xml
{class Program{static void Main(string[] args){XmlDocument doc new XmlDocument();//定义xml声明信息XmlDeclaration dec doc.CreateXmlDeclaration(1.0, UTF-8, null);//xml声明信息添加到文档对象下doc.AppendChild(dec);//给xml文档声明行添加注释doc.AppendChild(doc.CreateComment(line above is the declaration for the xml document));//创建根元素的注释XmlNode com doc.CreateComment(line below is the root element);doc.AppendChild(com);//创建根节点XmlElement root doc.CreateElement(Root);//将创建的Root元素添加到xml文档的根节点中doc.AppendChild(root);//循环添加多个结构相同的节点int subnodeCnt 6;//定义随机数对象用于产生年龄Random rdm new Random();for (int i 0; i subnodeCnt; i){//创建当前元素的注释XmlComment comment doc.CreateComment($这是第{i 1}个子节点);//将注释添加到root下面root.AppendChild(comment);//创建当前元素XmlElement element doc.CreateElement($学生{i 1});//给当前元素添加属性如果当前元素没有ID属性则添加ID属性如果当前元素有ID属性则更新ID属性的值element.SetAttribute(ID, ${i 100});//给当前元素添加子元素描述学生姓名信息XmlElement name doc.CreateElement(name);name.InnerText $学生{i1};element.AppendChild(name);//给当前元素添加子节点描述学生的年龄信息XmlElement age doc.CreateElement(Age);age.InnerText ${rdm.Next(12, 19)};element.AppendChild(age);//创建当前元素到根目录下root.AppendChild(element);}doc.Save(D:\dwang\myxml.xml);}}
}.5.读取xml文档demo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;namespace _2.读取x_m_l
{class Program{static void Main(string[] args){int i 1;string path $D:\dwang\myxml{i}.xml;XmlDocument doc new XmlDocument();doc.Load(path);//获取根节点XmlElement root doc.DocumentElement;//获取子节点(XmlNode是xmlElementxmlComment的父类)foreach (XmlNode student in root.ChildNodes){//忽略xml文件中的注释节点XmlCommentif (student as XmlElement null)continue;Console.Write(${student.Name}--{((XmlElement)student).GetAttribute(name)});foreach (XmlElement subnode in student.ChildNodes){Console.Write($--{subnode.Name}--{subnode.InnerText});}Console.Write(\r\n);}Console.ReadKey();}}
}6.修改xml文档的demo,包括更新节点添加节点删除节点等.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace _3.修改xml
{class Program{static void Main(string[] args){//添加节点修改节点删除节点XmlDocument doc new XmlDocument();//加载xml文档string path $D:\dwang\myxml1.xml;doc.Load(path);//获取根节点XmlElement root doc.DocumentElement;//获取根节点名称string name_RootNode root.Name;//添加节点XmlElement newStudent doc.CreateElement(newStuent);//设置newStuent元素的属性newStudent.SetAttribute(ID, 888);//添加newStuent元素的子节点nameageXmlElement name doc.CreateElement(name);name.InnerText newstuentName;newStudent.AppendChild(name);XmlElement age doc.CreateElement(age);age.InnerText 68;newStudent.AppendChild(age);//将新学生元素添加到根节点最后一个子元素后面root.InsertAfter(newStudent, root.ChildNodes[root.ChildNodes.Count-1]);//删除指定的节点两种常用方式(XPath)//删除指定的节点两种常用方式(XPath)//方式1XmlNode node1 doc.SelectSingleNode(/Root/学生1);//注意节点的大小写否则会找不到节点XmlNode node1_parent node1?.ParentNode;node1_parent?.RemoveChild(node1);//获取指定的节点后要用该节点的父节点对象删除该节点//方式2XmlNode node root.SelectSingleNode(//学生2);if(node ! null)root?.RemoveChild(node);//更新xml节点信息//获取指定节点元素XmlElement student3 doc.SelectSingleNode(/Root/学生3) as XmlElement;//更新ID属性值student3?.SetAttribute(ID, 000001);//设置当前节点的指定子节点的innerTextif (student3 ! null){student3[Age].InnerText 28;student3[name].InnerText Student--3;}//保存xml文档doc.Save(path);}}
}