java后台解析xml,java后台解析XML文件

本文介绍了XML文件的两种解析方式——DOM和SAX,重点讲解了使用SAX解析XML文件的过程。通过SAXReader读取XML文档,遍历元素节点,提取属性值,并将数据存储到Map中,实现高效且节省内存的文件解析。
摘要由CSDN通过智能技术生成

解析XML文件分為兩種:1、DOM(Document Object Model)         2、SAX(Simple API for XML)

DOM是基於XML文檔樹結構的解析,SAX是基於事件流的解析。

我用到的是SAX解析>>

一、XML文件

left1

推送信息

0.38

tsxx

http://www.baidu.com

left2

最熱關注

0.25

zrgz

http://www.baidu.com

left3

點擊量排行

0.36

djlph

http://www.baidu.com

center1

國家政策

0.33

gjzc

http://www.baidu.com

center2

地方政策

0.33

dfzc

http://www.baidu.com

center3

電改新聞

0.33

dgxw

http://www.baidu.com

right1

會議通知

0.45

hytz

http://www.baidu.com

right2

最新發布

0.3

zxfb

http://www.baidu.com

right3

我的收藏

0.24

wdsc

http://www.baidu.com

二、后台解析過程

SAXReader reader = new SAXReader();

InputStream in = null;

try {

map.clear();

// 通過reader對象的read方法加載zhcxdoc.xml文件,獲取docuemnt對象。

in = TfZhcxdocServiceImpl.class.getResourceAsStream("/zhcxdoc.xml");

Document document = reader.read(in);

// 通過document對象獲取根節點root

Element root = document.getRootElement();

// 通過element對象的elementIterator方法獲取迭代器

Iterator rootIt = root.elementIterator();

// 遍歷迭代器,獲取根節點中的信息

String key;

List> list;

Map mapdata;

while (rootIt.hasNext()) {

Element area = rootIt.next();

key = area.attribute("position").getValue(); // 取xml中某元素的屬性的值

Iterator areaIt = area.elementIterator();

list = new ArrayList>();

while (areaIt.hasNext()) {

Element panel = areaIt.next();

Iterator panelIt = panel.elementIterator();

mapdata = new HashMap();

while (panelIt.hasNext()) {

Element data = panelIt.next();

mapdata.put(data.getName(), data.getStringValue());

map.put(key, list);

}

list.add(mapdata);

}

}

} catch (DocumentException e) {

e.printStackTrace();

} finally {

try {

if (null != in) {

in.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

三、需要的包

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

四、使用該方法XML文件所放位置

在工程下的資源包下,如果需要再放入深入一點的包中,需要在后台代碼中將路徑改變

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值