java怎么解析xml文件?

Python021

java怎么解析xml文件?,第1张

String xml="<xml><ToUserName><![CDATA[toUser]]></ToUserName>"

+"<FromUserName><![CDATA[fromUser]]></FromUserName>"

+"<CreateTime>12345678</CreateTime>"

+"<MsgType><![CDATA[text]]></MsgType>"

+"<Content><![CDATA[你好]]></Content></xml>"

try {

//加载xml字符串

org.dom4j.Document document=org.dom4j.DocumentHelper.parseText(xml)

//获取根节点

org.dom4j.Element root=document.getRootElement()

//获取值  ==toUser

String toUserName=root.elementText("ToUserName")

System.out.println(toUserName)

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

package test

import java.io.File

import java.io.IOException

import java.util.List

import org.jdom2.Document

import org.jdom2.Element

import org.jdom2.JDOMException

import org.jdom2.input.SAXBuilder

/**

* 使用JDOM实现XML解析,jar包:jdom-2.0.5.jar

* @author zhurongfu

*

*/

public class JdomTest {

public static void parseXml (File file) throws JDOMException, IOException{

SAXBuilder sax = new SAXBuilder()

Document doc = sax.build(file)

Element root = doc.getRootElement()

parseElement(root)

}

private static void parseElement(Element element) {

// TODO Auto-generated method stub

List<Element>elementList = element.getChildren()

for(Element e:elementList){

if(e.getChildren().size() >0){

parseElement(e)

}else {

String elementName = e.getName()

if("id".equals(elementName)){

System.out.println("a的值为:"+e.getValue())

}else if("destaddr".equals(elementName)) {

System.out.println("b的值为:"+e.getValue())

}else if("status".equals(elementName)){

System.out.println("c的值为:"+e.getValue())

}

}

}

}

public static void main(String[] args) throws JDOMException, IOException {

// TODO Auto-generated method stub

File file = new File("test.xml")

parseXml(file)

}

}

(1)DOM解析

DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取

(2)SAX(Simple API for XML)解析

模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法

(1)、dom解析

dom解析是html和xml的应用程序接口(api) 以层次结构(类似与树形)来组织节点 和信息片段 映射xml文档的结构 允许获取和操作文档的任意部分 是官方标准

(2)、sax解析

流模型中in个的 推 模型 分析方式 通过事件驱动 没发现一个节点就引发一个事件 事件推给事件处理期 遍历回调方法

(3)、stax

流模型中的拉模型分析方式 提供基于指针和基于迭代器两种方式 的支持1.6新特征

(4)、jdom

java特定的文档对象模型 自身不包含解析器 使用sax

(5)、jdom4j

简单易用 采用java集合框架 兵完全支持dom sax 和jaxp