三种读取XML方法的比较

合集下载

java读取XML文件的四种方法总结(必看篇)

java读取XML文件的四种方法总结(必看篇)

java读取XML⽂件的四种⽅法总结(必看篇)JAVA操作XML⽂档主要有四种⽅式,分别是DOM、SAX、JDOM和DOM4J,DOM和SAX是官⽅提供的,⽽JDOM和DOM4J 则是引⽤第三⽅库的,其中⽤的最多的是DOM4J⽅式。

运⾏效率和内存使⽤⽅⾯最优的是SAX,但是由于SAX是基于事件的⽅式,所以SAX⽆法在编写XML的过程中对已编写内容进⾏修改,但对于不⽤进⾏频繁修改的需求,还是应该选择使⽤SAX。

下⾯基于这四种⽅式来读取XML⽂件。

第⼀,以DOM的⽅式实现。

package xmls;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import java.io.File;import java.io.IOException;/*** Created by lenovo on 2017-6-3.*/public class DOMReadDemo {public static void main(String[] args){DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();try{DocumentBuilder db = dbf.newDocumentBuilder();Document document = db.parse("src/xmls/DOM.xml");NodeList booklist = document.getElementsByTagName("book");for(int i = 0; i < booklist.getLength(); i++){System.out.println("--------第" + (i+1) + "本书----------");Element ele = (Element) booklist.item(i);NodeList childNodes= ele.getChildNodes();for(int j = 0; j < childNodes.getLength(); j++){Node n = childNodes.item(j);if(n.getNodeName() != "#text"){System.out.println(n.getNodeName() + ":" + n.getTextContent());}}System.out.println("---------------------------------");}}catch (ParserConfigurationException e){e.printStackTrace();}catch (IOException e){e.printStackTrace();}catch (SAXException e){e.printStackTrace();}}}第⼆,以SAX的⽅式实现。

PHP读写XML文件的四种方法

PHP读写XML文件的四种方法

PHP读写XML⽂件的四种⽅法 PHP对XML⽂件进⾏读写操作的⽅法⼀共有四种,分别是:字符串⽅式直接读写、DOMDocument读写、XMLWrite写和XMLReader读、SimpleXML读写,本⽂将依次对这四种⽅法进⾏介绍。

介绍之前⾸先对本⽂例⼦使⽤的数据和⽂件进⾏说明。

本⽂写XML⽂件的例⼦都是从MySQL中读取数据然后写⼊到XML⽂件中,读XML⽂件的例⼦都是从XML⽂件中读取数据后组装成数组的格式,数组中每个元素对应数据库中的⼀条记录。

MySQL中的数据:XML⽂件:<?xml version="1.0" encoding="utf8"?><studentcareer><period><starttime>2000</starttime><endtime>2002</endtime><school>培新⼩学</school></period><period><starttime>2002</starttime><endtime>2006</endtime><school>览表东阳学校</school></period><period><starttime>2006</starttime><endtime>2009</endtime><school>惠来慈云实验中学</school></period><period><starttime>2009</starttime><endtime>2012</endtime><school>惠来⼀中</school></period><period><starttime>2012</starttime><endtime>2016</endtime><school>华南师范⼤学</school></period></studentcareer>读取XML⽂件后组装成的数据格式: 下⾯的例⼦使⽤的数据、⽂件都是以上所列数据、⽂件,介绍各个⽅法时不再赘述,直接贴代码。

解析Xml文件的三种方式

解析Xml文件的三种方式

解析Xml⽂件的三种⽅式1、Sax解析(simple api for xml) 使⽤流式处理的⽅式,它并不记录所读内容的相关信息。

它是⼀种以事件为驱动的XML API,解析速度快,占⽤内存少。

使⽤回调函数来实现。

1class MyDefaultHander extends DefaultHandler{2private List<Student> list;3private Student student;45 @Override6public void startDocument() throws SAXException {7super.startDocument();8 list=new ArrayList<>();9 }1011 @Override12public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {13super.startElement(uri, localName, qName, attributes);14if(qName.equals("student")){15 student=new Student();1617 }18 preTag=qName;19 }2021 @Override22public void endElement(String uri, String localName, String qName) throws SAXException {23if(qName.equals("student")){24 list.add(student);25 }26 preTag=null;27 }2829 @Override30public void characters(char[] ch, int start, int length) throws SAXException {31if(preTag!=null){32if(preTag.equals("id")){33 student.setId(Integer.parseInt(new String(ch,start,length)));34 }else if(preTag.equals("name")){35 student.setName(new String(ch,start,length));36 }else if(preTag.equals("age")){37 student.setAge(Integer.parseInt(new String(ch,start,length)));38 }39 }40 }41public List<Student> getStudents(){42return list;43 }44 }45public List<Student> sax_parser(){46 List<Student> list=null;47try {48 SAXParser parser= SAXParserFactory.newInstance().newSAXParser();49 InputStream is= getAssets().open("student.xml");50 MyDefaultHander hander=new MyDefaultHander();51 parser.parse(is,hander);52 list= hander.getStudents();53 } catch (ParserConfigurationException e) {54 e.printStackTrace();55 } catch (SAXException e) {56 e.printStackTrace();57 } catch (IOException e) {58 e.printStackTrace();59 }60return list;61 }2、Dom解析 DOM(Document Object Model) 是⼀种⽤于XML⽂档的对象模型,可⽤于直接访问XML⽂档的各个部分。

Android解析xml文件的3种方式

Android解析xml文件的3种方式

android解析xml文件的方式android解析xml文件的方式(其一)在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据呢?通常有三种方式:DOM,SAX,PULL在这一节中我们使用DOM方式来处理。

DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的,但是这样一来,如果xml文件很大呢?手机CPU处理能力当然不能与PC 机器比,因此在处理效率方面就相对差了,当然这是对于其他方式处理xml文档而言。

解析xml文档,当然必须有xml文档文件啦,下面是一个参考river,放在assets目录.如下:<?xml version="1.0" encoding="utf-8"?><rivers><river name="灵渠" length="605"><introduction>灵渠在广西壮族自治区兴安县境内,是世界上最古老的运河之一,有着“世界古代水利建筑明珠”的美誉。

灵渠古称秦凿渠、零渠、陡河、兴安运河,于公元前214年凿成通航,距今已2217年,仍然发挥着功用。

</introduction><imageurl>/baike/pic/item/389aa8fdb7b8322e08244d3c.jpg</imageurl></river><river name="胶莱运河" length="200"><introduction>胶莱运河南起黄海灵山海口,北抵渤海三山岛,流经现胶南、胶州、平度、高密、昌邑和莱州等,全长200公里,流域面积达5400平方公里,南北贯穿山东半岛,沟通黄渤两海。

XML的四种解析器原理及性能比较

XML的四种解析器原理及性能比较

XML的四种解析器原理及性能比较1.DOM解析器:DOM解析器将整个XML文档加载到内存中,形成一个树形结构(DOM 树),并提供了对该树进行遍历、查询和修改的操作。

DOM解析器适合于需要多次访问XML元素且需要对XML进行频繁修改的场景。

DOM解析器的原理是将整个XML文档转换为一个树形结构,其中每个节点代表一个XML元素。

由于需要将整个文档加载到内存中,所以对于大型的XML文档,DOM解析器的内存消耗会比较大。

2.SAX解析器:SAX解析器的原理是逐个读取XML文档的节点,并在遇到事件时通过回调函数进行处理。

由于SAX解析器在解析过程中不需要将整个文档加载到内存,所以对于大型的XML文档,它的内存消耗相对较小。

3.StAX解析器:StAX解析器是一种基于迭代器的流式解析器。

它提供了许多类似于迭代器的方法,可以用于逐个处理XML文档中的节点。

StAX解析器既支持事件驱动的处理方式,也支持基于指针的处理方式。

StAX解析器的原理是通过指针方式遍历XML文档,并提供了一系列的API来操作当前指针所指向的节点。

由于StAX解析器在解析过程中只需要加载部分文档内容到内存,所以其内存消耗也比较小。

4. XPath解析器:XPath解析器是一种通过路径表达式来定位和选择XML文档中的节点的解析器。

XPath解析器可以将一个XPath表达式应用到XML文档上,然后返回所匹配的节点集合或属性的值。

XPath解析器的原理是将XPath表达式与XML文档进行匹配,使用查询语言来过滤和选择XML文档中的节点集合。

由于XPath解析器只需加载部分文档内容,所以其内存消耗也较小。

性能比较方面,选择解析器应根据实际需求和XML文档的特点来决定:- 对于小型XML文档,在DOM解析器中使用XPath表达式进行查询较为方便,且性能较好;-对于大型XML文档,SAX解析器和StAX解析器是更好的选择,因为它们在解析过程中不需要加载整个文档到内存中,所以能够节省内存消耗;-如果需要对XML文档进行多次访问和修改,DOM解析器是较好的选择,因为它可以将文档加载到内存中形成DOM树,可以方便地进行多次操作。

读写XML的四种方法

读写XML的四种方法

读写XML的四种方法XML(eXtensible Markup Language)是一种用于表示和传输数据的标记语言。

它具有良好的可读性和扩展性,被广泛应用于Web开发、数据交换和配置文件等领域。

在读写和处理XML数据时,有许多方法可供选择。

本文将介绍四种常见的读写XML的方法:DOM、SAX、JDOM、和XMLStreamReader/XMLStreamWriter。

1. DOM(Document Object Model):DOM是一种基于树形结构的解析器,它将整个XML文档加载到内存中,并将其表示为一个对象树。

在DOM中,每个XML元素都被表示为一个节点(Node),可以通过节点的属性和方法对其进行操作。

读取XML文档时,可以使用DOM解析器将其转换为一个DOM树,然后通过节点的方法访问和修改树结构。

写入XML文档时,可以通过创建和修改节点来构建DOM树,并使用DOM解析器将其保存为XML文档。

使用DOM读取XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。

- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。

- 使用DocumentBuilder对象解析XML文档,并返回一个Document对象。

- 通过Document对象的方法遍历和操作XML文档的节点。

使用DOM写入XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。

- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。

- 使用DocumentBuilder对象创建一个Document对象。

- 通过Document对象的方法创建和添加元素节点、属性节点等。

- 使用TransformerFactory和Transformer对象将Document对象保存为XML文档。

DOM的优点是易于使用和理解,可以方便地遍历和修改XML文档。

XML格式文件的应用与打开方法

XML格式文件的应用与打开方法

XML格式文件的应用与打开方法一、什么是xml格式文件XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是一种用于标记电子文件结构和传输数据的标记语言。

XML文件使用自定义标签来描述数据的结构和含义,可以被用于在不同系统之间进行数据交换和共享。

XML文件可以被解析和处理,使得数据能够被有效地存储、传输和展示。

XML被广泛应用于Web开发、数据交换、配置文件等领域。

二、XML格式文件的应用1. Web开发XML(可扩展标记语言)是用于存储和传输数据的标准标记语言,它与HTML一起被广泛用于创建动态和交互式的网页。

在网页开发中,XML常被用于存储配置信息,如网站的元数据、页面的布局和样式等。

此外,XML还用于在不同系统之间进行数据交换,使得数据能在不同的应用程序和平台上共享和交互。

由于其结构化、灵活性和跨平台性,XML在数据存储和传输领域发挥着不可或缺的作用。

在网页开发中,XML有诸多优势,使得它在数据存储和传输方面成为理想的选择。

首先,XML的结构化特性使得数据易于理解和解析,这对于在不同系统间进行数据交换非常关键。

其次,XML的跨平台性使得数据可以在不同的应用程序和操作系统上共享和交互。

此外,XML还具有灵活性,可以轻松地表示复杂的数据结构,并支持自定义标记,以适应特定应用的需求。

在网页开发中,利用这些优势,XML可以用于存储配置信息、实现数据驱动的动态内容、以及与其他系统进行数据交换等。

通过合理地使用XML,可以提高网页的可维护性、可扩展性和交互性,为创建高性能的网站提供有力支持。

2. 数据交换XML的跨平台性和标准化特性,使其成为不同系统之间进行数据交换的理想选择。

在Web服务中,XML被广泛用于传输数据,使得不同的应用程序能够通过统一的格式进行数据交换。

它能够清晰地表示数据的结构和含义,使得不同系统能够准确解析和解读数据。

此外,XML还可以在不同数据库之间进行数据转换,实现数据的共享和集成。

读取xml的五种方法

读取xml的五种方法
123 * @param qName 原始名,如LIT:student
124 * @throws SAXException */
125 public void endElement(String namespaceURI, String localName,String qName) throws SAXException{
28 System.exit(1);
29 }
30 //获得根节点StuInfo
31 Element elmtStuInfo = doc.getDocumentElement();
32 //得到所有student节点
33 NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
23 } catch (DOMException dom) {
24Message());
25 System.exit(1);
26 } catch (IOException ioe) {
27 System.err.println(ioe);
在java环境下读取xml文件的方法主要有5种:DOM、SAX、JDOM、JAXB、dom4j
最常用、最好用的dom4j
1. DOM(Document Object Model)
此 方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在 Java 语言中的应用不方便,并且可读性不强。

xml解析库对比总结(解析方式第三方库TinyXml)

xml解析库对比总结(解析方式第三方库TinyXml)

xml解析库对比总结(解析方式第三方库TinyXml)解析方式:1.事件驱动:事件驱动的解析方式是最常见和常用的解析方式。

在这种解析方式下,解析器遇到XML文件中的每个节点时,会触发一系列的事件,应用程序可以通过注册事件处理器来处理这些事件。

这种解析方式适用于大型XML文件,因为它不需要将整个XML文件加载到内存中。

2.文档对象模型(DOM):DOM解析方式会将整个XML文件加载到内存中,并将其表示为一个树形结构。

通过DOM解析方式,应用程序可以方便地遍历和操作XML文件的内容。

但是,DOM解析方式比较消耗内存,因为它需要将整个文件加载到内存中。

3.流解析:流解析方式将XML文件分割为一系列的事件流,应用程序可以通过处理这些事件流来解析XML文件。

这种解析方式比较高效,可以处理大型XML文件。

但是,它不支持随机访问XML文件。

第三方库:1. libxml2:libxml2是一个功能强大且广泛使用的XML解析库。

它支持DOM和SAX两种解析方式,可以在大多数操作系统上运行。

libxml2具有优秀的性能和稳定性,并提供了丰富的API用于XML的解析和操作。

2. Xerces:Xerces是Apache提供的一个XML解析库。

它是用Java 编写的,支持多种编程语言,如C++、Java和Python。

Xerces提供了DOM和SAX两种解析方式,具有很好的性能和稳定性。

3. Expat:Expat是一个轻量级的XML解析库,专门用于高性能的XML解析。

它支持事件驱动的解析方式,适用于处理大型XML文件。

Expat的代码简洁而高效,易于使用和集成到应用程序中。

TinyXml是一个简单而易于使用的C++ XML解析库。

它支持DOM解析方式,可以在内存中构建整个XML文件的树形结构。

TinyXml 的设计目标是提供一种简单、易于学习和快速入门的XML解析解决方案。

它的代码简洁、易于理解,适用于小型项目和嵌入式系统。

JAVA读XML:sax,dom,jdom,dom4j的比较以及选择

JAVA读XML:sax,dom,jdom,dom4j的比较以及选择

SAX:SAX分析器在对XML文档进行分析时,触发一系列的事件,应用程序通过事件处理函数实现对XML文档的访问。

由于事件触发本身是有时序性的,因此,SAX分析器提供的是一种对XML文档的顺序访问机制,对于已经分析过的部分,不能再倒回去重新处理。

SAX之所以被叫做"简单"应用程序接口,是因为SAX分析器只做了一些简单的工作,大部分工作还要由应用程序自己去做。

也就是说,SAX分析器在实现时,它只是顺序地检查XML文档中的字节流,判断当前字节是XML 语法中的哪一部分,检查是否符合XML语法并触发相应的事件。

对于事件处理函数本身,要由应用程序自己来实现。

同DOM分析器相比,SAX分析器对XML文档的处理缺乏一定的灵活性,然而,对于那些只需要访问XML文档中的数据而不对文档进行更改的应用程序来说,SAX分析器的效率则更高。

由于SAX分析器实现简单,对内存要求比较低,因此实现效率比较高同时具有广泛的应用价值。

DOM:DOM分析器通过对XML文档的分析,把整个XML文档以一棵DOM树的形式存放在内存中,应用程序可以随时对DOM树中的任何一个部分进行访问与操作,也就是说,通过DOM树,应用程序可以对XML文档进行随机访问。

这种访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。

然而,由于DOM分析器把整个XML文档转化成DOM 树放在了内存中,因此,当XML文档比较大或者文档结构比较复杂时,对内存的需求就比较高。

而且,对于结构复杂的树的遍历也是一项比较耗时的操作。

所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。

不过,由于DOM分析器的树结构的思想与XML文档的结构相吻合,而且,通过DOM树机制很容实现随机访问。

因此DOM分析器也有较为广泛的使用价值。

JDOM:JDOM是处理XML的纯JAVA API。

使用具体类而不用接口,既要生成大多数节点类型的实例,只要将一两个变元传入即可。

XML解析的三种方法

XML解析的三种方法

三种解析XML文件的方法在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。

下面是本例子要解析的XML文件:文件名称:china.xml例子定义了一个javabean用于存放上面解析出来的xml内容,这个javabean为Person,代码:使用SAX读取XML文件SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。

SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。

所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。

下面是一些ContentHandler接口常用的方法:startDocument()当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。

endDocument()和上面的方法相对应,当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。

startElement(String namespaceURI, String localName, String qName, Attributes atts) 当读到一个开始标签的时候,会触发这个方法。

namespaceURI就是命名空间,localName 是不带命名空间前缀的标签名,qName是带命名空间前缀的标签名。

通过atts可以得到所有的属性名和相应的值。

要注意的是SAX中一个重要的特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下以前所碰到的标签,也就是说,在startElement()方法中,所有你所知道的信息,就是标签的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元属等等其它与结构相关的信息,都是不得而知的,都需要你的程序来完成。

几种解析xml方式的比较

几种解析xml方式的比较

1:DOM DOM 是用与平台和语言无关的方式表示XML 文档的官方W3C 标准。

DOM 是以层次结构组织的节点或信息片断的集合。

这个层次结构允许开发人员在树中寻找特定信息。

分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。

由于它是基于信息层次的,因而DOM 被认为是基于树或基于对象的。

DOM 以及广义的基于树的处理具有几个优点。

首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。

它还可以在任何时候在树中上下导航,而不是像SAX 那样是一次性的处理。

DOM 使用起来也要简单得多。

另一方面,对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。

这些基于事件的模型,比如SAX.2:SAX 这种处理的优点非常类似于流媒体的优点。

分析能够立即开始,而不是等待所有的数据被处理。

而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。

这对于大型文档来说是个巨大的优点。

事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。

一般来说,SAX 还比它的替代者DOM 快许多。

3:选择DOM 还是选择SAX ?对于需要自己编写代码来处理XML 文档的开发人员来说,选择DOM 还是SAX 解析模型是一个非常重要的设计决策。

DOM 采用建立树形结构的方式访问XML 文档,而SAX 采用的事件模型。

DOM 解析器把XML 文档转化为一个包含其内容的树,并可以对树进行遍历。

用DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。

可以很容易的添加和修改树中的元素。

然而由于使用DOM 解析器的时候需要处理整个XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML 文件的时候。

由于它的遍历能力,DOM 解析器常用于XML 文档需要频繁的改变的服务中。

XML数据读取方式性能比较

XML数据读取方式性能比较

几个月来,疑被SOA,一直在和xml操作打交道,SQL差不多又忘光了。

现在已经知道,至少有四种常用人XML数据操作方式(好像java差不多),不过还没有实际比较过这些方式各有哪些特点或优劣。

正好看到网上也没有这方面的实验,偶来总结一下。

测试开始先读取XML源,用一个比较大的rss文件链接,复制到项目bin/debug 目录下。

Stream xmlStream = new MemoryStream(File.ReadAllBytes(path));一、XmlDocument 方式代码static IList testXmlDocument(){var doc = new XmlDocument();doc.Load(xmlStream);var nodeList = doc.DocumentElement.ChildNodes;var lstChannel = new List<Object>(nodeList.Count );foreach (XmlNode node in nodeList){var channel = new { Title = node.SelectSingleNode("title")。

InnerText, Link = node.SelectSingleNode("link")。

InnerText, Description = node.SelectSingleNode("description")。

InnerText, Content = node.SelectSingleNode("content")。

InnerText, PubDate = node.SelectSingleNode("pubDate")。

InnerText, Author = node.SelectSingleNode("author")。

用Python解析XML的几种常见方法的介绍_python_脚本之家

用Python解析XML的几种常见方法的介绍_python_脚本之家

用Python解析XML的几种常见方法的介绍_python_脚本之家一、简介XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用。

它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性。

python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合,注意xml.dom包里面有许多模块,须区分它们间的不同;二是xml.sax.*模块,它是SAX API 的实现,这个模块牺牲了便捷性来换取速度和内存占用,SAX是一个基于事件的API,这就意味着它可以“在空中”处理庞大数量的的文档,不用完全加载进内存;三是xml.etree.ElementTree模块(简称ET),它提供了轻量级的Python式的API,相对于DOM来说ET 快了很多,而且有很多令人愉悦的API可以使用,相对于SAX来说ET的ET.iterparse也提供了“在空中” 的处理方式,没有必要加载整个文档到内存,ET的性能的平均值和SAX差不多,但是API的效率更高一点而且使用起来很方便。

二、详解解析的xml文件(country.xml):在CODE上查看代码片派生到我的代码片&lt;?xml version='1.0'?&gt;&lt;data&gt;&lt;country name='Singapore'&gt;&lt;rank&gt;4&lt;/rank&gt;&lt;year&gt;2011&lt;/year&gt;&lt;gdppc&gt;59900&lt;/gdppc&gt;&lt;neighbor name='Malaysia' direction='N'/&gt;&lt;/country&gt;&lt;country name='Panama'&gt;&lt;rank&gt;68&lt;/rank&gt;&lt;year&gt;2011&lt;/year&gt;&lt;gdppc&gt;13600&lt;/gdppc&gt;&lt;neighbor name='Costa Rica' direction='W'/&gt;&lt;neighbor name='Colombia' direction='E'/&gt;&lt;/country&gt;&lt;/data&gt;1、xml.etree.ElementTreeElementTree生来就是为了处理XML,它在Python 标准库中有两种实现:一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。

C#三种常用的读取XML文件的方法

C#三种常用的读取XML文件的方法

C#三种常用的读取XML文件的方法C#三种常用的读取XML文件的方法下面我将介绍三种常用的读取XML文件的方法。

分别是1: 使用 XmlDocument2: 使用 XmlT extReader3: 使用 Linq to Xml这里我先创建一个XML文件,名为Book.xml下面所有的方法都是基于这个XML文件的,文件内容如下:1: <?xml version="1.0" encoding="utf-8"?>2: <bookstore>3: <!--记录书本的信息-->4: <book Type="必修课" ISBN="7-111-19149-2">5: <title>数据结构</title>6: <author>严蔚敏</author>7: <price>30.00</price>8: </book>9: <book Type="必修课" ISBN="7-111-19149-3">10: <title>路由型与交换型互联网基础</title>11: <author>程庆梅</author>12: <price>27.00</price>13: </book>14: <book Type="必修课" ISBN="7-111-19149-4">15: <title>计算机硬件技术基础</title>16: <author>李继灿</author>17: <price>25.00</price>18: </book>19: <book Type="必修课" ISBN="7-111-19149-5">20: <title>软件质量保证与管理</title>21: <author>朱少民</author>22: <price>39.00</price>23: </book>24: <book Type="必修课" ISBN="7-111-19149-6">25: <title>算法设计与分析</title>26: <author>王红梅</author>27: <price>23.00</price>28: </book>29: <book Type="选修课" ISBN="7-111-19149-1">30: <title>计算机操作系统</title>31: <author>7-111-19149-1</author>32: <price>28</price>33: </book>34: </bookstore>为了方便读取,我还定义一个书的实体类,名为BookModel,具体内容如下:1: using System;2: using System.Collections.Generic;3: using System.Linq;4: using System.Text;5:6: namespace 使用XmlDocument7: {8: public class BookModel9: {10: public BookModel()11: { }12: /// <summary>13: /// 所对应的课程类型14: /// </summary>15: private string bookType;16:17: public string BookType 18: {19: get { return bookType; } 20: set { bookType = value; } 21: }22:23: /// <summary>24: /// 书所对应的ISBN号25: /// </summary>26: private string bookISBN; 27:28: public string BookISBN 29: {30: get { return bookISBN; } 31: set { bookISBN = value; } 32: }33:34: /// <summary>35: /// 书名36: /// </summary>37: private string bookName; 38:39: public string BookName 40: {41: get { return bookName; } 42: set { bookName = value; } 43: }44:45: /// <summary>46: /// 作者47: /// </summary>48: private string bookAuthor;49:50: public string BookAuthor51: {52: get { return bookAuthor; }53: set { bookAuthor = value; }54: }55:56: /// <summary>57: /// 价格58: /// </summary>59: private double bookPrice;60:61: public double BookPrice62: {63: get { return bookPrice; }64: set { bookPrice = value; }65: }66: }67: }1.使用XmlDocument.使用XmlDocument是一种基于文档结构模型的方式来读取XML 文件.在XML文件中,我们可以把XML看作是由文档声明(Declare),元素(Element),属性(Attribute),文本(Text)等构成的一个树.最开始的一个结点叫作根结点,每个结点都可以有自己的子结点.得到一个结点后,可以通过一系列属性或方法得到这个结点的值或其它的一些属性.例如: 1: xn 代表一个结点2: ;//这个结点的名称3: xn.Value;//这个结点的值4: xn.ChildNodes;//这个结点的所有子结点5: xn.ParentNode;//这个结点的父结点6: .......1.1 读取所有的数据.使用的时候,首先声明一个XmlDocument对象,然后调用Load方法,从指定的路径加载XML文件.1: XmlDocument doc = new XmlDocument();2: doc.Load(@"..\..\Book.xml");然后可以通过调用SelectSingleNode得到指定的结点,通过GetAttribute得到具体的属性值.参看下面的代码1: // 得到根节点bookstore2: XmlNode xn = xmlDoc.SelectSingleNode("bookstore");3:4:5: // 得到根节点的所有子节点6: XmlNodeList xnl = xn.ChildNodes;7:8: foreach (XmlNode xn1 in xnl)9: {10: BookModel bookModel = new BookModel();11: // 将节点转换为元素,便于得到节点的属性值12: XmlElement xe = (XmlElement)xn1;13: // 得到Type和ISBN两个属性的属性值14: bookModel.BookISBN = xe.GetAttribute("ISBN").T oString();15: bookModel.BookType = xe.GetAttribute("Type").ToString();16: // 得到Book节点的所有子节点17: XmlNodeList xnl0 = xe.ChildNodes;18: bookModel.BookName=xnl0.Item(0).InnerText;19: bookModel.BookAuthor=xnl0.Item(1).InnerText;20:bookModel.BookPrice=Convert.ToDouble(xnl0.Item(2).InnerText );21: bookModeList.Add(bookModel);22: }23: dgvBookInfo.DataSource = bookModeList;在正常情况下,上面的代码好像没有什么问题,但是对于读取上面的XML文件,则会出错,原因就是因为我上面的XML文件里面有注释,大家可以参看Book.xml文件中的第三行,我随便加的一句注释.注释也是一种结点类型,在没有特别说明的情况下,会默认它也是一个结点(Node).所以在把结点转换成元素的时候就会报错."无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”。

C#读取XML文件的方法

C#读取XML文件的方法

C#读取XML文件的方法:(XMLTextReader与XMLDocument 不同)时间:2009-12-7 11:09:22 点击:84 来源:aspx8 关键词:XMLTextReader XMLDocument读取的XML文件test.xml内容如下:<?xml version="1.0" encoding="GB2312" ?><aspx8><article><Title>aspx8</Title><Param><id>1</id><content>test</content></Param></article></aspx8>读取content的值1.System.xml命名空间下的XmlTextReader类XMLTextReader------提供以快速、单向、无缓冲的方式存取XML数据。

(单向意味着你只能从前往后读取XML文件,而不能逆向读取),不需要占用很多的系统资源,就能迅速的从XML文件读取数据当使用NodeType属性时,理解节点怎么联系到XML单元是非常重要的。

例如, 看下列 XML元素:<content>test</content>XMLtextReader 把这个元素看作 3 个节点,顺序如下:1.<content>标签被读为类型 XMLNodeType.Element 节点,元素的名字“content”可从 XMLTextReader 的Name属性中获得。

2.文本数据“test”被读为类型为XMLNodeType.Text的节点。

数据“test” 可从XMLTextReader 的Value属性中取得。

3.</content>标签被读为类型为XMLNodeType.EndElement 节点。

C#读取XML的三种实现方式

C#读取XML的三种实现方式

C#读取XML的三种实现⽅式前⾔XML⽂件是⼀种常⽤的⽂件格式,例如WinForm⾥⾯的app.config以及Web程序中的web.config⽂件,还有许多重要的场所都有它的⾝影。

(类似还有Json)微软也提供了⼀系列类库来倒帮助我们在应⽤程序中存储XML⽂件在程序中访问进⽽操作XML⽂件⼀般有两种模型:DOM(⽂档对象模型):使⽤DOM的好处在于它允许编辑和更新XML⽂档,可以随机访问⽂档中的数据,可以使⽤XPath查询,但是,DOM的缺点在于它需要⼀次性的加载整个⽂档到内存中,对于⼤型的⽂档,这会造成资源问题。

流模型:流模型很好的解决了这个问题,因为它对XML⽂件的访问采⽤的是流的概念,也就是说,任何时候在内存中只有当前节点,但它也有它的不⾜,它是只读的,仅向前的,不能在⽂档中执⾏向后导航操作。

C#中三种读取XML⽂件⽅法如下:1.使⽤ XmlDocument(DOM模式)2.使⽤ XmlTextReader(流模式)3.使⽤ Linq to Xml(Linq模式)使⽤XmlDocument⽅式读取使⽤XmlDocument是⼀种基于⽂档结构模型的⽅式来读取XML⽂件.在XML⽂件中,我们可以把XML看作是由⽂档声明(Declare),元素(Element),属性(Attribute),⽂本(Text)等构成的⼀个树.最开始的⼀个结点叫作根结点,每个结点都可以有⾃⼰的⼦结点.得到⼀个结点后,可以通过⼀系列属性或⽅法得到这个结点的值或其它的⼀些属性.例如:xn 代表⼀个结点;//这个结点的名称xn.Value;//这个结点的值xn.ChildNodes;//这个结点的所有⼦结点xn.ParentNode;//这个结点的⽗结点读取所有数据使⽤的时候,⾸先声明⼀个XmlDocument对象,然后调⽤Load⽅法,从指定的路径加载XML⽂件.BookModel是图书模型#region XmlDocument读取public static void XmlDocumentReadDemo(){//listList<BookModel> bookModeList = new List<BookModel>();//使⽤的时候,⾸先声明⼀个XmlDocument对象,然后调⽤Load⽅法,从指定的路径加载XML⽂件.XmlDocument doc = new XmlDocument();XmlReaderSettings settings = new XmlReaderSettings();settings.IgnoreComments = true;//忽略⽂档⾥⾯的注释using (XmlReader reader = XmlReader.Create(@"d:/demo.xml", settings)){doc.Load(reader);//doc.Load(@"d:/demo.xml");//然后可以通过调⽤SelectSingleNode得到指定的结点,通过GetAttribute得到具体的属性值.参看下⾯的代码// 得到根节点bookstoreXmlNode xn = doc.SelectSingleNode("bookstore");// 得到根节点的所有⼦节点XmlNodeList xnl = xn.ChildNodes;foreach (XmlNode xn1 in xnl){BookModel bookModel = new BookModel();// 将节点转换为元素,便于得到节点的属性值XmlElement xe = (XmlElement)xn1;// 得到Type和ISBN两个属性的属性值bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();bookModel.BookType = xe.GetAttribute("Type").ToString();// 得到Book节点的所有⼦节点XmlNodeList xnl0 = xe.ChildNodes;bookModel.BookName = xnl0.Item(0).InnerText;bookModel.BookAuthor = xnl0.Item(1).InnerText;bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);bookModeList.Add(bookModel);}}bookModeList.Add(new BookModel());}#endregion XmlDocument读取运⾏结果如下:使⽤XmlTextReader⽅式读取使⽤XmlTextReader读取数据的时候,⾸先创建⼀个流,然后⽤read()⽅法来不断的向下读,根据读取的结点的类型来进⾏相应的操作.如下:#region XmlTextReaderDemopublic static void XmlTextReaderDemo(){XmlTextReader reader = new XmlTextReader(@"d:/demo.xml");List<BookModel> modelList = new List<BookModel>();BookModel model = new BookModel();while (reader.Read()){if (reader.NodeType == XmlNodeType.Element){if ( == "book"){model.BookType = reader.GetAttribute("Type");model.BookISBN = reader.GetAttribute("ISBN");}if ( == "title"){model.BookName = reader.ReadElementContentAsString();}if ( == "author"){model.BookAuthor = reader.ReadElementString().Trim();}if ( == "price"){model.BookPrice = Convert.ToDouble(reader.ReadElementString().Trim());}//for(int i=0;i<reader.AttributeCount;i++)//{// reader.MoveToAttribute(i);//}}if (reader.NodeType == XmlNodeType.EndElement){modelList.Add(model);model = new BookModel();}}reader.Close();modelList.Add(new BookModel());}#endregion XmlTextReaderDemo使⽤ Linq to Xml读取Linq是C#3.0中出现的⼀个新特性,使⽤它可以⽅便的操作许多数据源,也包括XML⽂件.使⽤Linq操作XML⽂件⾮常的⽅便,⽽且也⽐较简单。

关于Unity的几种XML读取方式

关于Unity的几种XML读取方式

关于Unity的几种XML读取方式最近在用Unity做手机游戏,其中关卡解锁信息需要用xml保存那么问题就来了,Unity有多种路径操作的方法,但是对于移动端,有的方法只能读不能写……于是我去上网查了点资料(参考资料:/forum.php?mod=viewthread&tid=21404&extra=page%3D1%2 6filter%3Dtypeid%26typeid%3D143)第一种——Resources.Load这种方式是笔者首先想到的方法,想要用这个方法,需要把xml 文件放在Assest\Resources文件夹下,然后通过Resources.Load(文件名)的方式来读取。

例:比如我在Asset\Resources下有个GateInfo.xml的文件。

那么想要读取这个文件,只要Resources.Load("GateInfo");即可读取。

string data = Resources.Load("你的xml文件").ToString();XmlDocument doc = new XmlDocument();doc.LoadXml(data);PS:不要加后缀名!不要加后缀名!不要加后缀名!因为很重要所以说三次但是这种方式在编辑器的情况下可以对文件进行“增删改查”,但是在Build之后,就只能执行“查”(也就是读)的操作了……第二种——Application.persistentDataPath这是笔者最后决定使用的方法,这种方法的优点是可以在移动上执行读写操作,关于存储位置如下:Windows : C:\Users\Dorameon\AppData\LocalLow\Doraki ng 其中Doraemon是笔者的电脑用户名,Doraking为项目名Android: /data/data/com.Doraking.Mission/files: 其中com.Doraking.Mission为你build时所设定的Bundle Identifier iOS:Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents(PS:笔者没有IOS设备,没办法实测,于是从参考资料里复制了下来)例:1.SavePath = Application.persistentDataPath + "//GateInfo. xml";2.XmlDocument GateInfoDoc = new XmlDocument();3.GateInfoDoc.Load(SavePath);4.GateInfoDoc.Save(SavePath);PS:这个和Resources.Load不一样,是获取文件路径,要加后缀名!第三种——Application.dataPath这种方法可以把xml文件直接放在根路径下直接读取,但是根据笔者查阅的资料,发现这种方式在移动端没有对应的读写权限╮( ̄▽ ̄")╭但是这种方法有一种改进措施。

使用XMLReader、XMLDocument和DataSet读取xml文件及效率

使用XMLReader、XMLDocument和DataSet读取xml文件及效率

使用XMLReader、XMLDocument和DataSet读取xml文件及效率在 .NET 开发中经常需要读取和操作XML文件,例如:操作配置文件(web.config和app.config)、读取业务设置的xml文件等。

以前都喜欢用DataSet直接读取或写入xml,当文件小的时候,读取效率还能接受,但是当文件很大的时候,读取就变得很慢了。

闲暇之于就对 XMLReader 、 XMLDocument和DataSet 读取XML文件进行简单总结,对效率进行简单比较。

1、XMLReader 读取XML文件XMLReader 提供对 XML 数据进行快速、非缓存、只进访问的读取器。

XMLReader 只能读取xml文件,需要我们自己控制怎样获取相应的xml节点的信息,适合于读取很大的xml文件。

XMLReader 有一个类型为XmlNodeType的NodeType只读属性,通过它可以知道当前节点类型,以及根据节点类型和具体需求获取相应节点的信息。

更详细的信息可以到微软技术资源库进行查询和了解。

XMLReader读取XML文件方式如下:1: static List<Dictionary<string, string>> XMLReaderTest(string xmlPath)2: {3: List<Dictionary<string, string>> entityInfo = new List<Dictionary<string, string>>();4: using (XmlReader reader = new XmlTextReader(xmlPath))5: {6: Dictionary<string, string> xmlValue = null;7: string key = string.Empty;8: while (reader.Read())9: {10: switch (reader.NodeType)11: {12: case XmlNodeType.Element:13: if (pare(reader.LocalName, "BE_WorkStation_ACInstance",StringComparison.OrdinalIgnoreCase) == 0)14: {15: xmlValue = new Dictionary<string, string>();16: }17: else18: {19: if (pare(reader.LocalName, "EntitySchema", StringComparison.OrdinalIgnoreCase) != 0) 20: {21: key = reader.LocalName;22: }23: }24: break;25: case XmlNodeType.EndElement:26: if (pare(reader.LocalName, "BE_WorkStation_ACInstance",StringComparison.OrdinalIgnoreCase) == 0)27: {28: if (xmlValue != null)29: {30: entityInfo.Add(xmlValue);31: xmlValue = null;32: }33: }34: break;35: case XmlNodeType.Text:36: if (xmlValue != null)37: {38: xmlValue.Add(key, reader.Value);39: }40: break;41: default:42: break;43: }44: }45: }46: return entityInfo;47: }2、XMLDocument读取XML文件XMLDocument 表示XML文档在内存中的树形结构,它提供像js 操作html文档一样的方式操作XML文档。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用XMLReader、XMLDocument和DataSet读取xml文件及效率在 .NET 开发中经常需要读取和操作XML文件,例如:操作配置文件(web.config和app.config)、读取业务设置的xml文件等。

以前都喜欢用DataSet直接读取或写入xml,当文件小的时候,读取效率还能接受,但是当文件很大的时候,读取就变得很慢了。

闲暇之于就对XMLReader 、XMLDocument 和DataSet 读取XML文件进行简单总结,对效率进行简单比较。

1、XMLReader 读取XML文件XMLReader 提供对XML 数据进行快速、非缓存、只进访问的读取器。

XMLReader 只能读取xml 文件,需要我们自己控制怎样获取相应的xml节点的信息,适合于读取很大的xml文件。

XMLReader 有一个类型为XmlNodeType的NodeType只读属性,通过它可以知道当前节点类型,以及根据节点类型和具体需求获取相应节点的信息。

更详细的信息可以到微软技术资源库进行查询和了解。

XMLReader读取XML文件方式如下:1: static List<Dictionary<string, string>> XMLReaderTest(string xmlPath)2: {3: List<Dictionary<string, string>> entityInfo = new List<Dictionary<string, string>>();4: using (XmlReader reader = newXmlTextReader(xmlPath))5: {6: Dictionary<string, string> xmlValue = null; 7: string key = string.Empty;8: while (reader.Read())9: {10: switch (reader.NodeType)11: {12: case XmlNodeType.Element:13: if(pare(reader.LocalName, "BE_WorkStation_ACInstance", StringComparison.OrdinalIgnoreCase) == 0)14: {15: xmlValue = newDictionary<string, string>();16: }17: else18: {19: if(pare(reader.LocalName, "EntitySchema", StringComparison.OrdinalIgnoreCase) != 0)20: {21: key = reader.LocalName; 22: }23: }24: break;25: case XmlNodeType.EndElement:26: if(pare(reader.LocalName, "BE_WorkStation_ACInstance", StringComparison.OrdinalIgnoreCase) == 0)27: {28: if (xmlValue != null)29: {30:entityInfo.Add(xmlValue);31: xmlValue = null;32: }33: }34: break;35: case XmlNodeType.Text:36: if (xmlValue != null)37: {38: xmlValue.Add(key,reader.Value);39: }40: break;41: default:42: break;43: }44: }45: }46: return entityInfo;47: }2、XMLDocument读取XML文件XMLDocument 表示XML文档在内存中的树形结构,它提供像js操作html文档一样的方式操作XML文档。

在读取单个小XML文件时效率比较高。

XMLDocument 读取XML文件方式如下:1: static List<Dictionary<string, string>> XMLDocumentTest(string xmlPath)2: {3: List<Dictionary<string, string>> entityInfo = new List<Dictionary<string, string>>();4: using (XmlReader reader = newXmlTextReader(xmlPath))5: {6: XmlDocument doc = new XmlDocument();7: doc.Load(reader);8: XmlNodeList nodeList = doc.ChildNodes;9: foreach (XmlNode node in nodeList)10: {11: var xmlValue = new Dictionary<string, string>();12: foreach (XmlNode child innode.ChildNodes)13: {14: xmlValue[child.LocalName] =child.InnerText;15: }16: entityInfo.Add(xmlValue);17: }18: }19: return entityInfo;20: }3、DataSet 读取XML文件DataSet 类型提供了一个ReadXml 方法,它将XML架构和数据读入DataSet中。

DataSet 在读取XML 文件时效率很低。

DataSet 读取XML文件方式如下:1: static List<Dictionary<string, string>> DataSetTest(string xmlPath)2: {3: List<Dictionary<string, string>> entityInfo = new List<Dictionary<string, string>>();4: DataSet ds = new DataSet();5: //读取XML文件架构6: using (XmlReader reader = newXmlTextReader(xmlPath))7: {8: ds.ReadXmlSchema(reader);9: }10: foreach (DataTable dt in ds.Tables)11: {12: dt.BeginLoadData();13: }14: using (XmlReader reader = newXmlTextReader(xmlPath))15: {16: ds.ReadXml(reader);17: }18: foreach (DataTable dt in ds.Tables)19: {20: dt.EndLoadData();21: }22: if (ds.Tables.Count > 0)23: {24: DataTable dt = ds.Tables[0];25: foreach (DataRow row in dt.Rows)26: {27: var xmlValue = new Dictionary<string, string>();28: foreach (DataColumn col in dt.Columns) 29: {30: xmlValue[col.ColumnName] =row.Field<string>(col);31: }32: entityInfo.Add(xmlValue);33: }34: }35: return entityInfo;36: }读取的xml文件片段:1: <?xml version="1.0"encoding="utf-8" ?>2: <EntitySchema>3:4: <BE_WorkStation_ACInstance>5: <FieldName>MS_ACInstanceOID</FieldName>6: <FieldChinese>主键</FieldChinese>7: <FieldType>45</FieldType>8: <FieldLength>500</FieldLength>9: <DecLength>0</DecLength>10: <CodeTable>选择</CodeTable>11: <fUseCodeTable>false</fUseCodeTable>12: <fDisplay>true</fDisplay>13: <DefaultValue></DefaultValue>14: <FieldKind>0</FieldKind>15: <fCanModify>true</fCanModify>16: <ForeignKeyField></ForeignKeyField>17: <LookupKeyField></LookupKeyField>18: <LookupDataSet></LookupDataSet>19: <LookupResultField>选择列</LookupResultField>20: <fForeignKey>false</fForeignKey>21: <SqlColumn>MS_ACInstance.MS_ACInstanceOID asMS_ACInstanceOID</SqlColumn>22: <ifSubmit>true</ifSubmit>23: <SubmitColumnName></SubmitColumnName>24: <ifReadData>true</ifReadData>25: <ifChangeDataSet>true</ifChangeDataSet>26: <ColumnNumRule></ColumnNumRule>27: <EditorBusinessElement></EditorBusinessElement> 28: <InputRule></InputRule>29: <InputRuleHelper></InputRuleHelper>30: <ifCheckInputNull>false</ifCheckInputNull>31: <EncryptRule></EncryptRule>32: </BE_WorkStation_ACInstance>33:34: <BE_WorkStation_ACInstance>35: <FieldName>sys_rank</FieldName>36: <FieldChinese>排序标识</FieldChinese>37: <FieldType>2</FieldType>38: <FieldLength>500</FieldLength>39: <DecLength>0</DecLength>40: <CodeTable>选择</CodeTable>41: <fUseCodeTable>false</fUseCodeTable>42: <fDisplay>true</fDisplay>43: <DefaultValue></DefaultValue>44: <FieldKind>0</FieldKind>45: <fCanModify>true</fCanModify>46: <ForeignKeyField></ForeignKeyField>47: <LookupKeyField></LookupKeyField>48: <LookupDataSet></LookupDataSet>49: <LookupResultField>选择列</LookupResultField>50: <fForeignKey>false</fForeignKey>51: <SqlColumn>MS_ACInstance.BASE_Rank assys_rank</SqlColumn>52: <ifSubmit>true</ifSubmit>53: <SubmitColumnName>BASE_Rank</SubmitColumnName> 54: <ifReadData>true</ifReadData>55: <ifChangeDataSet>true</ifChangeDataSet>56: <ColumnNumRule></ColumnNumRule>57: <EditorBusinessElement></EditorBusinessElement> 58: <InputRule></InputRule>59: <InputRuleHelper></InputRuleHelper>60: <ifCheckInputNull>false</ifCheckInputNull>61: <EncryptRule></EncryptRule>62: </BE_WorkStation_ACInstance>63:64: ......65: </EntitySchema>使用上述3个方法分别读取一个大小为11M的xml文件,经过100次读取得到的总时间取平均值,分别为:0.4696s、0.5604、2.3166s。

相关文档
最新文档