LinqToXml (一) Create Xml file By Dom /Linq

目前,在xml 应用编程领域比较流行的开发模型是W3C 提供的DOM(文档对象模型),在.net Framework 通过命名空间 System.Xml 对该技术提供了支持。随着Linq to XMl 的诞生, .net 3.5 之后,我们可以使用Linq to sql 操作XMl 。以下是通过两种方式创建相同结构的xml文件。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Xml;
 7 using System.Xml.Linq;
 8
 9 namespace Linq2Xml
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             DateTime dt1 = DateTime.Now;
16             CreateXmlByDom(1400);
17             DateTime dt2 = DateTime.Now;
18             TimeSpan ts1 = dt2 - dt1;
19             DateTime dt3 = DateTime.Now;
20             CreateXmlByXml(1400);
21             DateTime dt4 = DateTime.Now;
22             TimeSpan ts2 = dt4 - dt3;
23
24             Console.WriteLine("采用Dom构建xml耗时:"+ts1.Milliseconds);
25             Console.WriteLine("采用Linq构建xml耗时:" + ts2.Milliseconds);
26             Console.ReadKey();
27         }
28
29         public static void CreateXmlByDom(int n)
30         {
31             XmlDocument doc = new XmlDocument();
32             XmlElement booklist = doc.CreateElement("booklist");
33             XmlElement book, author;
34             for (int i = 0; i < n; i++)
35             {
36                 book = doc.CreateElement("book");
37                 book.SetAttribute("name", "book1-"+i);
38                 author = doc.CreateElement("author");
39                 author.InnerText = "李"+i+"金";
40                 book.AppendChild(author);
41                 booklist.AppendChild(book);
42             }
43
44             doc.AppendChild(booklist);
45             doc.Save("c:/xmlttt.xml");
46         }
47
48         public  static void CreateXmlByXml(int n)
49         {
50             XElement[] bookArray =new XElement[n] ;
51             for (int i =0;i< n;i++)
52             {
53                 bookArray[i] = new XElement("book", new object[]
54                 {
55                     new XAttribute("name","book1-"+i),
56                     new XElement("author","李"+i+"金")
57                 });
58             }
59             XElement booklist = new XElement("booklist", bookArray);
60             XDocument xdoc = new XDocument();
61             xdoc.Add(booklist);
62             xdoc.Save("c:/xmlttt2.xml");
63         }
64     }
65 }    
时间: 2024-11-01 12:59:18

LinqToXml (一) Create Xml file By Dom /Linq的相关文章

[vb.net]XML File Parsing in VB.NET

Introduction Parsing XML files has always been time consuming and sometimes tricky. .NET framework provides powerful new ways of parsing XML. The various techniques know to parse xml files with .NET framework are using XmlTextReader, XmlDocument, Xml

create pdf file using Spire.Pdf or iTextSharp or PdfSharp

Spire.Pdf: 注:pdf 显示中文一定要设置相应的中文字体,其他外文类似.否则显示为乱码 安装配置:PM> Install-Package Spire.PDF https://stackoverflow.com/questions/5566186/print-pdf-in-c-sharp /// <summary> /// https://stackoverflow.com/questions/5566186/print-pdf-in-c-sharp /// </summa

Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文主要介绍这4种解析XML文档技术的使用.优缺点及性能测试. 一.[基础知识——扫盲] sax.dom是两种对xml文档进行解析的方法(

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex.activity/com.ex.activity.LoginActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ex.activity/com.ex.activity.LoginActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class 异常解决方案: 是因为设置background的图片太大了,造成了内存溢出,在Activity设置onCreate

XML解析之DOM解析技术案例

Java代码: package com.xushouwei.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.No

How to parse Xml file -- SAX!

Different from DOM parser, the SAX parser will parse the file from one node to another. There are several methods are common used in SAX parser: startDocument() startElement() character() endElement() endDocument() For example: <Books> ------> st

SP2-0110: Cannot create save file &quot;afiedt.buf&quot;

sp2-0110:无法创建保存文件"afiedt.buf" 出处:此问题是由于使用 define _editor=vim 时,用ed更改时报错 问题原因:Cannot create save file "afiedt.buf" 因为在执行 edit的时候 "afiedt.buf" 文件默认保存在你键入sqlplus命令时所在目录中 比如:你在 / 目录下进入sqlplus, 当你用edit时,"afiedt.buf"文件就会保

Linux出现cannot create temp file for here-document: No space left on device的问题解决

在终端输入:cd /ho 按tab键时,显示错误: bash: cannot create temp file for here-document: No space left on device 这是由于该磁盘的空间已经满了,这时候可以进行扩容,或者将该磁盘的部分目录迁移到别的磁盘. 以下为解决思路,查找最大的文件,然后将其干掉: 1.使用命令df -h 查看硬盘空间 2.命令top查看cpu及内存 3.使用命令du -h –max-depth=1 /var/log/* 查看/var/log路

Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误

这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面.    当时,我仔细检查了一下自己的代码,并没有发现什么问题,在logcat上显示的报错如下:AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class(这是其中报错的最主要的一行信息).  于是我在百度上几乎查看