XML解析器是个什么东西

Python014

XML解析器是个什么东西,第1张

转帖

如需操作某个XML文档,需要XML解析器。解析器会将文档载入电脑的内存中。

最基础的:

基于事件的XML简单API(Simple API for XML)称为SAX,SAX 采用的事件模型。SAX 解析器在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

基于树和节点的文档对象模型(Document Object Module)称为DOM,DOM 采用建立树形结构的方式访问。DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于XML文档需要频繁的改变的服务中。

其他上层API:

基于SAX和DOM两者的:

JAXP(Java API for XML Processing)包含javax.xml.parsers和transform其中parsers包中包括4个主要类SAXParser和SAXParserFactory类创建SAX XMLReader接口例程,DocumentBuilder和DocumentBuilderFactory类创建DOM Document接口例程。

DOM4J:一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。

XERCES:Xerces是由Apache组织所推动的一项XML文档解析开源项目,支持文档对象模型(DOM)和XML简单应用编程接口(SAX)。对于DOM解析,有DOMParser和IDOMParser;对于SAX解析,有SAXParser。它目前有多种语言版本包括JAVA、C++、PERL、COM等。

仅基于DOM的:

JDOM:Jason Hunter和Brett McLaughlin开发的项目,JDOM的设计目标就是在读和创建XML时简化DOM,取代DOM。

微软的MSXML解析器:微软的XML解析器是存在于IE 5.0或更高版本中的COM组件。一旦你安装了IE,就可使用脚本来利用解析器了。微软给我们提供XML语法解析器,一个叫做MSXML.DLL的动态链接库(C语言)

仅基于SAX的:

StAX(Streaming API for XML ):JSR-173 提出了一种面向流的新方法。其目的,简化编程,取代SAX。JDK6.0中除了DOM和SAX之外集成的又一种处理XML文档的API。

其他:

XALAN:xalan-java是一套xslt处理器,用来将XML文件转换为HTML,TEXT和XML等其他类型文件格式。支持XSLT1.0和XPATH 1.0版。开发人员可以通过命令行方式或在JAVA APPLET和SERVLET中使用,并可以作为自己开发的应用程序的类库使用。xalan-java实现的是transformation API for XML(TRaX)接口,此接口为jaxp1.2标准中的一部分。

在CLDC环境下运作的开放原始码XML分析器──kXML和NanoXML。Enhydra的KXML是一个只占很小存储空间的XML语法分析程序,对于J2ME应用程序非常适合。

把所有的数据当做一个字符串

收到数据后先strstr(buffer,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>")

如果返回的是NULL则表示没有这段 退出

buffer是你收到的数据起始地址

MSXML它的全名是MicrosoftXMLCoreServices,主要是用来执行或开发经由XML所设计的最新应用程序。MSXML就是指微软的xml语言解析器,用来解释xml语言的。

微软正式发布了其XML的核心服务组件---MSXML4.0。和MSXML3.0相比,MSXML4.0提供了大量的新功能和功能改进。

扩展资料:

MSXML解析器允许你装载和创建一个文档,收集文档的错误信息,得到和操作文档中的所有的信息和结构,并把文档保存在一个XML文件中。

DOM提供给用户一个接口来装载、到达和操作并序列化XML文档。DOM提供了对存储在内存中的XML文档的一个完全的表示,提供了可以随机访问整个文档的方法。DOM允许应用程序根据MSXML解析器提供的逻辑结构来操作XML文档中的信息。利用MSXML所提供的接口来操作XML。

参考资料来源:百度百科—msxml