jdom 组装xml以及解析xml
2016-01-10 18:33
351 查看
到官方网站下载JDOM包http://www.jdom.org/
注意的是,版本1和版本2的类路径已经变更,如果你是更新使用版本2,则需要重新编译你的代码
package com.test; import java.io.FileOutputStream; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; /** * @说明 JDom生成解析XML * @author cuisuqiang * @version 1.0 * @since */ @SuppressWarnings("unchecked") public class JDomDemo { public static void main(String[] args) { String file = "C:\\p.xml"; // 文件存放位置 JDomDemo dj = new JDomDemo(); dj.createXml(file); dj.parserXml(file); } /** * 生成XML * @param filePath 文件路径 */ public void createXml(String fileName) { Element root = new Element("persons"); Document document = new Document(root); Element person = new Element("person"); root.addContent(person); Element name = new Element("name"); name.setText("java小强"); person.addContent(name); Element sex = new Element("sex"); sex.setText("man"); person.addContent(sex); Element age = new Element("age"); age.setText("23"); person.addContent(age); XMLOutputter XMLOut = new XMLOutputter(); try { Format f = Format.getPrettyFormat(); f.setEncoding("UTF-8");//default=UTF-8 XMLOut.setFormat(f); XMLOut.output(document, new FileOutputStream(fileName)); } catch (Exception e) { e.printStackTrace(); } } /** * 解析XML * @param filePath 文件路径 */ public void parserXml(String fileName) { try { SAXBuilder builder = new SAXBuilder(); Document document = builder.build(fileName); Element root = document.getRootElement(); List persons = root.getChildren("person"); for (int i = 0; i < persons.size(); i++) { Element person = (Element) persons.get(i); List pros = person.getChildren(); for (int j = 0; j < pros.size(); j++) { Element element = (Element) pros.get(j); System.out.println(element.getName() + ":" + element.getValue()); } } } catch (Exception e) { e.printStackTrace(); } } } 来自:http://cuisuqiang.iteye.com/ !在上面我们看到在解析xml的时候使用的是filepath 也就是本地的xml 文件,但是我们有时会访问接口通过接口来获取xml文件这时怎么办那其实不管是filepath 还是inputStream还是url其实都是一样,因为不管哪种方式都要将其从 inputStream 流转化成String 在进行解析,其实filePath 和url 都是一样的一个来自本地一个来自网络:
SAXBuilder builder = new SAXBuilder();
builder.build(URL url); 其实SAXBuilder类的build()方法有很多重载,其中可以传File InputStream Reader URL 等参数具体的有哪些方法可以参考jdom api
所需要的jar包以及api文档可以到官网下载:http://www.jdom.org/
这里也有api文档可以下载:jdom api文档
相关文章推荐
- C/C++ 图像处理(7)------图像の球面贴合算法
- Android 判断设备是否拥有相机
- 简化Spring的XML配置(三)——自动寻找bean
- C++入门(1)简单变量和数据类型
- unix网络编程之socket:epoll 系列函数简介、与select、poll 的区别
- C++中单例设计模式
- LeetCode-49-Group Anagrams(哈希)-Medium
- 2015工作总结及2016展望
- JS_运算符
- 在Ubuntu下配置舒服的Python开发环境
- 2014年11月4日星期二(DEMO10-1,3D裁剪)
- DNS原理及DNS服务器的建立(主从)
- struts.xml框架
- PL/SQL报错:“ORA-12154: TNS:无法解析指定的连接标识符”
- [LeetCode] Rectangle Area
- linux设置iptables防火墙的详细步骤(centos防火墙设置方法)
- Mongodb 笔记05 创建副本集
- 【Unity Shader】unity海边波浪效果的实现
- 我的Android进阶之旅------>android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
- MFC悬浮鼠标控制灯的开关