2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言ecit [转载]c# linq的一些运用 – EcitGis – 博客园

c语言ecit [转载]c# linq的一些运用 – EcitGis – 博客园

时间:2023-11-15 16:35:27

相关推荐

c语言ecit [转载]c# linq的一些运用 – EcitGis – 博客园

最近在学习xml.linq 网上也找了一些资料都不大全面,因此在这写了一点东西和大家分享,由于本人知识有限,如有错误请指证

可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自 己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。(百度)

学习xml.linq,首先要了解xml的几个定义。

1.XDeclaration—– XML 声明用于声明 XML 版本、编码以及 XML 文档是否独立,如果想新建一个xml文件需要在xml文件的最前面声明xml的一些信息

1 XDeclaration m_XDexlaration = new XDeclaration("1.0", "utf-8", "yes"); //初始化 XDeclaration

2 XDocument m_Xdocument = new XDocument(m_XDexlaration, new XElement("person")); //初始化 XDocument 初始化一个文档时 记得要有一个根节点不然报错

3 m_Xdocument.Save("person.xml");//文档保存

结果:

2.XElement ,XElement 是指包含在尖括号里面的有开始结束标签的标记语言,比如 person ,item就是一个元素

3.XAttribute 属性,比如 person中的color就是item的属性

4.node 节点,节点是一个比较抽象的定义,在xml文档中 node可以是 元素和其他的一些东西

二.xml.linq一些方法的运用

1.初始化一个xml文档

XDeclaration xs = new XDeclaration("1.0", "utf-8", "yes");

XDocument xdoc=new XDocument(xs,new XElement ("person",new XAttribute("color","red"),new XAttribute("size","big"),new XElement("name","刘清"),new XElement("age","18")));

xdoc.Save("p.xml");

Console.WriteLine(xdoc);

初始化文档时注意一下几点:

1.首先应有XDeclaration ,就是xml的定义比如版本,编码方式登

2.初始化xml时要有一个根节点,比如上面的person就是一个根节点。上面定义了根节点的两个属性,color,size;在person下面有两个子节点 name和age

刘清

18

2.xml文件的遍历

比如有一个xml文档时这样的

打开工作空间

关闭工作空间

保存工作空间

退出工作空间

打印

复制

剪切

粘贴

菜单管理器

现在我要遍历它所有的项,并根据读取元素strip 的menu属性

1 ArrayList name=newArrayList();2 ArrayList s_name;3 XDocument m_Xdocument = XDocument.Load("MenuXml.XML");//使用xdocument类的静态方法读取文档

4 XElement m_Xlement = m_Xdocument.Element("Menu"); //读取根元素

5 IEnumerable sdf = m_Xlement.Elements("strip");//读取strip元素下的节点(有两个strip节点元素和若干item元素)

6 int i = 0;7 foreach (XElement sld insdf)8 {9 name.Add( sld.Attribute("menu").Value);//得到strip的属性menu

10 Console.WriteLine(name[i++]);11 }12 IEnumerable i_XElment = m_Xlement.Elements();//获得根元素(Menu)下面的所有节点元素

13 foreach (XElement x ini_XElment)14 {15 IEnumerable p_xelment = x.Elements("item");16 s_name = newArrayList();17 foreach (XElement e inp_xelment)18 {19

20 Console.Write(e.Value.ToString());21 }22

23

24 }

文件

编辑

打开工作空间 关闭工作空间 保存工作空间 退出工作空间 打印 复制 剪切 粘贴

菜单管理器 请按任意键继续. . .

3.删除特定的节点

假定有个xml文档为MenuXml 其内容为

关闭工作空间

保存工作空间

退出工作空间

打印

现在我要删除其中一个元素名为“关闭工作空间” 代码如下

1 XDocument m_Xdocument = XDocument.Load("MenuXml.XML");//使用xdocument类的静态方法读取文档

2 XElement m_Xlement = m_Xdocument.Element("Menu"); //读取根元素

3

4 IEnumerable xe = m_Xlement.Elements();//得到根元素下的集合

5 foreach (XElement x inxe)6 {7 IEnumerable xes = x.Elements("item");//得到item的集合

8 foreach (XElement ds inxes)9 {10 if (ds.Value.ToString().Trim() == "关闭工作空间")//对比

11 {12 ds.Remove();13 m_Xdocument.Save("MenuXml1.XML");//保存为新的xml

14 }15 }16 }17 XDocument a1 = XDocument.Load("MenuXml.XML");18 XDocument a2 = XDocument.Load("MenuXml1.XML");19 Console.WriteLine(a1);20 Console.WriteLine(a2);

结果如下

关闭工作空间

保存工作空间

退出工作空间

打印

保存工作空间

退出工作空间

打印

请按任意键继续. . .

在学习linq xml时要注意的是,通过方法.Element()得到的只是只是第一组标签(如果该标签存在多对时)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。