首页 > 编程知识 正文

java json解析,java进阶路线图

时间:2023-05-05 00:17:16 阅读:151950 作者:4183

xml分析

xml概述

XML (可扩展标记语言)。 XML将文档和数据结构化,以便在部门、客户和供应商之间进行交换、动态内容生成、企业集成和APP开发。 xml使更准确的搜索、软件组件的传输和事物的描述变得容易。 例如,电子商务等。 主要特性:设计用于数据传输和存储; 被设计为显示数据。 它们都是“标准通用标记语言”的子集。

xml分析

因为XML文件中多记述信息的内容,所以得到XML文件后,在其使用程序中根据其中要素的定义名称取出对应的内容称为XML分析。 在XML分析中,W3C定义了SAX和DOM两种分析方式。 这两种分析方式的程序的工作方式如下。

XML分析操作

APP应用程序并不直接与XML文档交互,而是通过以下方式间接与XML文档交互:首先使用XML分析器分析XML文档,然后APP应用程序通过XML分析器提供的DOM或SAX界面与结构交互

Dom分析

在APP应用程序中,基于文档对象模型(DOM )的XML分析器将XML文档转换为称为DOM树的对象模型的集合。 应用程序jadsp通过处理此对象模型来处理XML文档数据。 利用DOM接口的机制也称为随机访问机制,因为APP应用程序可以随时访问XML文档中任何部分的数据。 由于DOM分析器将整个XML文档转换为DOM树并将其存储在内存中,因此在文档较大或结构复杂的情况下,内存需求较高,遍历结构复杂的树也需要时间。 DOM操作将导致内存中的所有XML文件成为DOM树。

DOM分析具有四个核心操作界面:

Document :此接口表示整个XML文档,表示整个DOM树的根,并提供访问和操作文档中数据的入口。 您可以通过Document节点访问XML文件中的所有元素内容。

文档界面的一般方法

Node:DOM操作的大部分核心接口继承自Node接口。 例如,文档、元素、Attri等接口。 在DOM树中,每个节点接口表示DOM树中的一个节点。

节点接口的一般方法

NodeList :此接口表示节点的集合,通常用于表示具有顺序关系的一组节点。 例如,节点的子节点在文档发生更改时会直接影响NodeList集合。

NodeList接口的一般方法

NameNodeMap :此接口表示与一组节点和唯一名称的一一对应关系,主要用于属性节点的表示。

除了以上四个核心接口外,如果一个程序需要DOM分析读取操作,则必须完成以下步骤:

(1) DocumentBuilderfactory的建立: documentbuilderfactoryfactory=documentbuilderfactory.new instance );

)2)创建文档生成器: documentbuilderbuilder=factory.newdocumentbuilder (;

)3)文档建立:文档doc=builder.parse ('要读取的文件路径');

(4) nodelist的建立: nodelist nl=doc.getelementsbytagname ) (“读取节点”);

)5)进行XML信息的读取。

DOM完成XML的文件输出。 现在,您必须使用DOM操作提供的各个接口(如Element接口)手动设置各个节点的关系。 此外,创建Document对象时,还必须使用newDocument )方法创建新的DOM树。 如果现在需要将XML文件保存到硬盘上,则必须使用四个类: TransformerFactory、Transformer、DOMSource和StreamResult 4。 TransformerFactory类:获取Transformer类的实例对象。 DOMSource类:接收文档对象。 StreamResult类:指定要使用的输出流对象。 可以输出到文件,也可以输出到指定的输出流。 Transformer类:使用此类完成内容的输出。

如何构建流结果类

SAX分析操作

与SAX(simpleAPISforXML,操作XML的简单接口) DOM操作不同,sax采用的是顺序模式访问和快速读取XML数据。 使用SAX解析器操作将触发一系列事件。

SAX的主要事件

扫描到文档(文档)开始和结束,元素) Ele

ment)开始与结束时都会调用相关的处理方法,并由这些操作方法做出相应的操作,直到整个文档扫描结束。如果在开发中想要使用SAX解析,则首先应该编写一个SAX解析器,再直接定义一个类,并使该类继承自DefaultHandler类,同时覆写上述的表中的方法即可。

建立完SAX解析器后,还需要建立SAXParserFactory和SAXParser对象,之后通过SAXPaeser的parse()方法指定要解析的XML文件和指定的SAX解析器。

使用SAX解析器

package com.sax.demo;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

public class SaxTest { public static void main(String[] args) throws Exception {

//(1)建立SAX解析工厂

SAXParserFactory factory = SAXParserFactory.newInstance();

//(2)构造解析器

SAXParser parser = factory.newSAXParser();

//(3)解析XML使用

handler parser.parse("sax_demo.xml", new XmlSax());

}}

通过上面的程序可以发现,使用SAX解析比使用DOM解析更加容易。

DOM解析与SAX解析的区别

有两者的特点可以发现两者的区别:DOM解析适合于对文件进行修改和随机存取的操作,但是不适合于大型文件的操作。SAX采用部分读取的方式,所以可以处理大型文件,而且只需要从文件中读取特定内容。SAX解析可以由用户自己建立自己的对象模型。

2.3、XML解析的好帮手:jdom

jdom是使用Java编写的,用于读、写、操作XML的一套组件。

jdom = dom 修改文件的有点 + SAX读取快速的优点

jdom的主要操作类

使用jdom生成XML文件

使用jdom读取XML文件

jdom是一种常见的操作组件在实际的开发中使用非常广泛。

2.4、解析工具:dom4j

dom4j也是一组XML操作组件包,主要用来读写XML文件,由于dom4j性能优异、功能强大,且具有易用性,所以现在已经被广泛地应用开来。如,Hibernate、Spring框架中都使用了dom4j进行XML的解析操作。开发时需要引入的jar包:dom4j-1.6.1.jar、lib/jaxen-1.1-beta-6.jar

dom4j中的所用操作接口都在org.dom4j包中定义。其他包根据需要把选择使用。

dom4j的主要接口

用dom4j生成XML文件:

用dom4j读取XML文件:

小结

XML主要用于数据交换,而HTML则用于显示。

Java直接提供的XML解析方式分为两种,即DOM和SAX。这两种解析的区别如下:

DOM解析是将所有内容读取到内存中,并形成内存树,如果文件量较大则无法使用,但是DOM解析可以进行文件的修改

SAX解析是采用顺序的方式读取XML文件中,不受文件大小限制,但是不允许修改。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。