导航:首页 > 编程语言 > javaxmltomap

javaxmltomap

发布时间:2022-05-24 11:07:06

A. xml和java有什么联系

那你首先要明白xml是什么,xml(Extensible Markup Language)中文意思就是可扩展标记语言,用于存储数据和描述数据,不同的平台可以同过xml文件建立起联系。在java开发中,许多的配置文件,都是xml的,比如web.xml,struts-config.xml,ibatis的sqlMapConfig.xml等等。。。

B. java解析xml的几种方式哪种最好

(1)DOM解析
DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取
和操作文档的任意部分,是W3C的官方标准
【优点】
①允许应用程序对数据和结构做出更改。
②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
①通常需要加载整个XML文档来构造层次结构,消耗资源大。
【解析详解】
①构建Document对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);
②遍历DOM对象
Document: XML文档对象,由解析器获取
NodeList: 节点数组
Node: 节点(包括element、#text)
Element: 元素,可用于获取属性参数
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法
完成解析工作,解析XML文档的逻辑需要应用程序完成
【优势】
①不需要等待所有数据都被处理,分析就能立即开始。
②只在读取数据时检查数据,不需要保存在内存中。
③可以在某个条件得到满足时停止解析,不必解析整个文档。
④效率和性能较高,能解析大于系统内存的文档。
【缺点】
①需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。
②单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。
【原理】
简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束时通知事件
处理函数(回调函数),进行相应处理,直到文档结束
【事件处理器类型】
①访问XML DTD:DTDHandler
②低级访问解析错误:ErrorHandler
③访问文档内容:ContextHandler
【DefaultHandler类】
SAX事件处理程序的默认基类,实现了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常
做法是,继承该基类,重写需要的方法,如startDocument()
【创建SAX解析器】
SAXParserFactory saxf = SAXParserFactory.newInstance();
SAXParser sax = saxf.newSAXParser();
注:关于遍历
①深度优先遍历(Depthi-First Traserval)
②广度优先遍历(Width-First Traserval)
(3)JDOM(Java-based Document Object Model)
Java特定的文档对象模型。自身不包含解析器,使用SAX
【优点】
①使用具体类而不是接口,简化了DOM的API。
②大量使用了Java集合类,方便了Java开发人员。
【缺点】
①没有较好的灵活性。
②性能较差。
(4)DOM4J(Document Object Model for Java)
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP
【优点】
①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺点】
①大量使用了接口,API较为复杂。
(5)StAX(Streaming API for XML)
流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
【和推式解析相比的优点】
①在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
②同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
③拉式解析客户端能够一次读取多个XML文件。
④拉式解析允许你过滤XML文件和跳过解析事件。
【简介】
StAX API的实现是使用了Java Web服务开发(JWSDP)1.6,并结合了Sun Java流式XML分析器(SJSXP)-它位于
javax.xml.stream包中。XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个
XML文档。XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制
形成对照。

C. java中如何使用xml 文件

解析的话: dom4j 很常用而且也简单, 当然oracle::sun的dom解析也要去了解, sax太复杂

xml的用途:
作为配置文件: web.xml 这在web应用中最常用

作为存储文件: 在mvc开发模式中, 可以暂时代替db作为开发的存储后台文件

xml编写:
编写格式良好的xml文件, 以<?xml version="" encoding="" ?>作为抬头

xml文件严格区分大小写

xml约束文档:
编写格式良好的xml文档, 需要读懂DTD,XSD等对xml的格式要求

希望可以帮助你

D. java 怎么将 map xml 相互转换

引入dom4j.jar这个包,把Xml文件的节点都读取下来,再put进map集合里。

E. java解析xml的几种方式哪种最好

(1)DOM解析
DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取
和操作文档的任意部分,是W3C的官方标准
【优点】
①允许应用程序对数据和结构做出更改。
②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
①通常需要加载整个XML文档来构造层次结构,消耗资源大。
【解析详解】
①构建Document对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);
②遍历DOM对象
Document: XML文档对象,由解析器获取
NodeList: 节点数组
Node: 节点(包括element、#text)
Element: 元素,可用于获取属性参数
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法
完成解析工作,解析XML文档的逻辑需要应用程序完成
【优势】
①不需要等待所有数据都被处理,分析就能立即开始。
②只在读取数据时检查数据,不需要保存在内存中。
③可以在某个条件得到满足时停止解析,不必解析整个文档。
④效率和性能较高,能解析大于系统内存的文档。
【缺点】
①需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。
②单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。
【原理】
简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束时通知事件
处理函数(回调函数),进行相应处理,直到文档结束
【事件处理器类型】
①访问XML DTD:DTDHandler
②低级访问解析错误:ErrorHandler
③访问文档内容:ContextHandler
【DefaultHandler类】
SAX事件处理程序的默认基类,实现了DTDHandler、ErrorHandler、ContextHandler和EntityResolver接口,通常
做法是,继承该基类,重写需要的方法,如startDocument()
【创建SAX解析器】
SAXParserFactory saxf = SAXParserFactory.newInstance();
SAXParser sax = saxf.newSAXParser();
注:关于遍历
①深度优先遍历(Depthi-First Traserval)
②广度优先遍历(Width-First Traserval)
(3)JDOM(Java-based Document Object Model)
Java特定的文档对象模型。自身不包含解析器,使用SAX
【优点】
①使用具体类而不是接口,简化了DOM的API。
②大量使用了Java集合类,方便了Java开发人员。
【缺点】
①没有较好的灵活性。
②性能较差。
(4)DOM4J(Document Object Model for Java)
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP
【优点】
①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺点】
①大量使用了接口,API较为复杂。
(5)StAX(Streaming API for XML)
流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
【和推式解析相比的优点】
①在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
②同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
③拉式解析客户端能够一次读取多个XML文件。
④拉式解析允许你过滤XML文件和跳过解析事件。
【简介】
StAX API的实现是使用了Java Web服务开发(JWSDP)1.6,并结合了Sun Java流式XML分析器(SJSXP)-它位于
javax.xml.stream包中。XMLStreamReader接口用于分析一个XML文档,而XMLStreamWriter接口用于生成一个
XML文档。XMLEventReader负责使用一个对象事件迭代子分析XML事件-这与XMLStreamReader所使用的光标机制
形成对照。

答案来自网络知道 仅供参考

F. java中如何读取xml中数据。多节点的。给我一个例子,谢谢。

在我们的程序中,通常要有一些根据主机环境确定的变量.比如数据库访问用户名和密码,不同的主机可能设置不一样.只要更改XML配置文件,就可以正常运行.

localhost

sqlname

username

password

上面这个myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目录下.

我们编制一个Java程序直接读取,将dbhost dbuser dbpassword提取出来供其他程序访问数据库用.

目前使用SAX比较的多,与DOM主要区别是 SAX是一行一行读取XML文件进行分析,适合比较大文件,DOM是一次性读入内存,显然不能对付大文件.这里我们使用SAX解析,由于SAX解析器不断在发展,网上有不少文章是针对老版本的.假如你使用JDK1.4 ,可以参考 使用SAX处理XML文档 一文.这里的程序是根据其改进并且经过实践调试得来的.

对上面myenv.xml读取的Java程序:

import org.xml.sax.Attributes;

import org.xml.sax.helpers.DefaultHandler;

import org.xml.sax.SAXException;

import java.util.Properties;

//使用DefaultHandler的好处 是 不必陈列出所有方法,

public class ConfigParser extends DefaultHandler {

////定义一个Properties 用来存放 dbhost dbuser dbpassword的值

private Properties props;

private String currentSet;

private String currentName;

private StringBuffer currentValue = new StringBuffer();

//构建器初始化props

public ConfigParser() {

this.props = new Properties();

}

public Properties getProps() {

return this.props;

}

//定义开始解析元素的方法. 这里是将中的名称xxx提取出来.

public void startElement(String uri, String localName, String qName, Attributes attributes)

throws SAXException {

currentValue.delete(0, currentValue.length());

this.currentName =qName;

}

//这里是将之间的值加入到currentValue

public void characters(char[] ch, int start, int length) throws SAXException {

currentValue.append(ch, start, length);

}

//在碰到结束后,将之前的名称和值一一对应保存在props中

public void endElement(String uri, String localName, String qName) throws SAXException {

props.put(qName.toLowerCase(), currentValue.toString().trim());

}

}

上面的这个解析程序比较简单吧? 其实解析XML就是这么简单.

现在我们已经将dbhost dbuser dbpassword的值localhost sqlname username password提取了出来.但是这只是在在解析器内部,我们的程序还不能访问.需要再编制一个程序.

import java.util.Properties;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import java.net.URL;

public class ParseXML{

//定义一个Properties 用来存放 dbhost dbuser dbpassword的值

private Properties props;

//这里的props

public Properties getProps() {

return this.props;

}

public void parse(String filename) throws Exception {

//将我们的解析器对象化

ConfigParser handler = new ConfigParser();

//获取SAX工厂对象

SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setNamespaceAware(false);

factory.setValidating(false);

//获取SAX解析

SAXParser parser = factory.newSAXParser();

//得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes

//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义

URL confURL = BeansConstants.class.getClassLoader().getResource(filename);

try

{

//将解析器和解析对象myenv.xml联系起来,开始解析

parser.parse(confURL.toString(), handler);

//获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了

props = handler.getProps();

}finally{

factory=null;

parser=null;

handler=null;

}

}

}

由于我们的XML文件是使用最简单的形式 ,因此解析器相对简单,但是这已经足够对付我们的配置文件了.

G. java中xml有什么作用,用在什么地方

java中xml一般是用来当做配置文件的,比方说struts的struts.xml、spring的application.xml,这里面记录的一般是配置信息,比方说servlet配置,映射注入配置等等都可以用xml来配置,当然配置也可以写入数据库,如果配置和程序的业务无关,也和系统配置无关,仅仅和系统构架有关,那就可以把配置写入xml里面来存储这些配置。

H. java和xml什么关系

xml(Extensible Markup Language)中文意思就是可扩展标记语言,用于存储数据和描述数据,不同的平台可以同过xml文件建立起联系。
在java开发中,许多的配置文件,都是xml的,比如web.xml,struts-config.xml,ibatis的sqlMapConfig.xml等。
XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把支持XML开发作为宣传口号之一 。由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试。

I. JAVA能把下面的 xml 转化为JSON

用XStream这个类库就可以实现xml ==> java ==> json


不过你这种情况,用类库直接转换还很麻烦,要设置很多东西,还要调试

建议自己写个sax解析器,先把你的xml解析成java对象,再用Gson或用JSONObject或用XStream将对象转换成json

天下没有免费的午餐,5分只能帮你到这了,请采纳哈

J. Java文件解析xml文件转成 map

xml 文件解析 涉及到 属性 和 相同的节点元素, 解析成map需要做相应的处理,

具体实现可以看以下链接,
http://blog.csdn.net/u011490355/article/details/77775544

阅读全文

与javaxmltomap相关的资料

热点内容
无线路由如何设置成服务器 浏览:136
QQ飞车源码更新 浏览:899
虚拟机中编译器 浏览:476
台达PLC编译按钮在哪里 浏览:141
非编程计算器多少钱 浏览:655
房本还完贷款解压 浏览:818
中国程序员有出名吗 浏览:548
亳州云服务器 浏览:632
程序员最难的面试 浏览:894
配音秀app怎么诵读 浏览:751
sparkcore源码 浏览:100
程序员中年生活 浏览:355
读取加密信息失败怎么回事 浏览:510
编译过程之后是预处理吗 浏览:351
安卓是基于什么做出来 浏览:600
视频字幕提取APP怎么使用 浏览:59
js通过ip地址连接服务器吗 浏览:848
java数字金额大写金额 浏览:858
人人影视路由器固件编译 浏览:967
照片通讯录短信怎么从安卓到苹果 浏览:458