详细XML解析转换
来源:互联网 发布:拍网络剧的演员挣钱吗 编辑:程序博客网 时间:2024/05/21 09:32
1.建立test.xml文件
<books> <book ID="1" name="java练习"> <author>Wmen</author> <title>Java练习</title> <publisher>哈哈哈</publisher> </book> <book ID="2" name="Xml解析"> <author>失眠忍者</author> <title>Xml解析</title> <publisher>啦啦啦</publisher> </book> <book ID="3" name="练习册"> <author>WJ</author> <title>练习册</title> <publisher>嘻嘻嘻</publisher> </book></books>
2.建立testClass.java
3.利用getResourceAsStream方法读取test.xml文件并转换成流的形式:
InputStream ins = this.getClass().getResourceAsStream("test.xml");
4.用SAXReader().read(ins)将ins转换为Document:
document = new SAXReader().read(ins);
5.Element rootElt = document.getRootElement();转换成枚举类型以便于处理
6.迭代获得的枚举rootElt:
Iterator<Element> eltIterator = rootElt.elementIterator();
7.Element elt = eltIterator.next();自此已经可以获取元素值。
elt.getStringValue()即可
最后贴上源码包含转list等一下处理
项目目录结构(为maven项目)
相关jar包的引入:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> </dependency> </dependencies>
testClass代码:
public void test(){ List<Map<String, String>> columnDatas = new ArrayList<Map<String, String>>();InputStream ins = this.getClass().getResourceAsStream("test.xml");System.out.println("将xml解析转换成流的形式:"+ins);Document document = null;try { document = new SAXReader().read(ins); System.out.println("SAXReader().read()解析后的document:"+document); Element rootElt = document.getRootElement(); System.out.println("将document转成Element:"+rootElt); Iterator<Element> eltIterator = rootElt.elementIterator(); System.out.println("迭代后:"+eltIterator); while(eltIterator.hasNext()) { Element elt = eltIterator.next(); System.out.println("取得元素"+elt.getStringValue()); List<Attribute> attributes = elt.attributes(); System.out.println("转list:"+attributes); Map<String, String> cd = new HashMap<String, String>(); for (Attribute attr : attributes) { //保存xml里面属性属于这个TransXMLDTO里面 String name = StringUtils.trim(attr.getName()); System.out.println("属性名称"+name);// TransXMLDTD.valueOf(name); cd.put(name, StringUtils.trim((String) attr.getData()));} columnDatas.add(cd); System.out.println(columnDatas.get(0)); }} catch (DocumentException e) {e.printStackTrace();} finally { try { if (null != ins) { ins.close(); } } catch (IOException e) { logger.debug("流关闭失败"); throw new RuntimeException("流关闭失败"); }}System.out.println(this.getClass().getSimpleName());}
利用Junit进行简单的测试package controller;import org.junit.Test;public class testClassSon extends testClass { @Test public void testSon(){ test(); }}运行后结果为
注意:若用idea进行开发,需设置test.xml路径,因为eclipse和idea的编译读取文件时的处理不一样,若不设置
this.getClass().getResourceAsStream("test.xml")
处会读取不到文件。
Maven项目下可在pom.xml配置添加如下代码即可读取到
<build> <finalName>WjTest</finalName> <resources> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> </resource> </resources></build>
阅读全文
0 0
- 详细XML解析转换
- XML Schema详细解析
- DOM解析XML-详细
- XML解析详细介绍
- AndroidManifest.xml详细解析
- Xml解析详细过程
- 解析xml 转换map
- XML WebService实例详细解析
- XML WebService实例详细解析
- cocos2dx读取xml详细解析
- cocos2dx读取xml详细解析
- web.xml文件详细解析
- php解析xml详细介绍
- cocos2dx读取xml详细解析
- java解析xml,详细解释
- tomcat server.xml详细解析
- XML WebService完全实例详细解析
- XML WebService完全实例详细解析
- Maven中-DskipTests和-Dmaven.test.skip=true的区别
- 微信公众号开发相关
- OpenGL ES 2.0——顶点着色器Vertex Shader
- 模仿听云前端奔溃日志上传
- linux内核学习之进程和线程
- 详细XML解析转换
- 【HUSTOJ】1100: 那些三位数
- H5最基础知识点
- 多线程必须用到的线程池(什么时候用多线程)
- NoSql中的B-tree、B+tree和LSM-tree
- 创建ipa脚本
- I2C通信略谈
- 1573:国王的魔镜
- 目标检测的图像特征提取之(一)HOG特征