使用DOM4J解析XMl文件与读取XML文件
2016-03-28 21:00
471 查看
XML文件
Book实体类
DOM4J解析XMl文件
DOM4J读取XMl
读取XMl
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="1"> <name>冰与火之歌</name> <author>乔治马丁</author> <year>2014</year> <price>89</price> </book> <book id="2"> <name>安徒生童话</name> <year>2004</year> <price>77</price> <language>English</language> </book> </bookstore>
Book实体类
public class Book { private String id; private String name; private String author; private String year; private String price; private String language; // get set 方法生成即可 }
DOM4J解析XMl文件
public class DOM4JTest { private static ArrayList<Book> bookList = new ArrayList<Book>(); /** * @param args */ public static void main(String[] args) { // 解析books.xml文件 // 创建SAXReader的对象reader SAXReader reader = new SAXReader(); try { // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。 Document document = reader.read(new File("src/res/books.xml")); // 通过document对象获取根节点bookstore Element bookStore = document.getRootElement(); // 通过element对象的elementIterator方法获取迭代器 Iterator it = bookStore.elementIterator(); // 遍历迭代器,获取根节点中的信息(书籍) while (it.hasNext()) { System.out.println("=====开始遍历某一本书====="); Element book = (Element) it.next(); // 获取book的属性名以及 属性值 List<Attribute> bookAttrs = book.attributes(); for (Attribute attr : bookAttrs) { System.out.println("属性名:" + attr.getName() + "--属性值:" + attr.getValue()); } Iterator itt = book.elementIterator(); while (itt.hasNext()) { Element bookChild = (Element) itt.next(); System.out.println("节点名:" + bookChild.getName() + "--节点值:" + bookChild.getStringValue()); } System.out.println("=====结束遍历某一本书====="); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
DOM4J读取XMl
public class DOM4JTest { private void createXML() { // 1.创建document对象,代表整个xml文档 Document document = DocumentHelper.createDocument(); // 2.创建根节点rss Element rss = document.addElement("rss"); // 3.向rss节点中添加version属性 rss.addAttribute("version", "2.0"); // 4.生成子节点及节点内容 Element channel = rss.addElement("channel"); Element title = channel.addElement("title"); Element content = title.addElement("content"); content.setText("本周中期北方明显偏暖 多地气温较同期偏高8℃以上"); // title.setText("<![CDATA[上海移动互联网产业促进中心正式揭牌 ]]>"); // 5.设置生成xml的格式 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); // 6.生成xml文件 File file = new File("rssnews.xml"); XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file), format); // 设置是否转义,默认值是true,代表转义 writer.setEscapeText(false); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { new DOM4JTest().createXML(); } }
读取XMl
相关文章推荐
- [ML of Andrew Ng]Week 5 Neural Networks:Learning
- 高性能布局技巧
- opencv二维直方图
- 《MySQL必知必会学习笔记》:数据分组
- CALayer 学习日记(一)
- nginx
- 自定义控件之瀑布流与水波纹实现
- linux下so动态库一些不为人知的秘密(中)
- 总结一
- 死循环引起的血案
- 查找(Searching)
- 《MySQL必知必会学习笔记》:聚集函数
- FragmentStatePagerAdapter.notifyDataSetChanged不刷新页面的解决的方法
- 栈的运用(算数表达式求值的算符优先算法 十以内简单版)
- 排序算法-及其Java代码实现
- 解析机器中加减法对于二进制补码的运用(附python代码)
- 《leetCode》:Find the Duplicate Number
- 【LeetCode】3. Longest Substring Without Repeating Characters的两种解法
- Java编程思想学习笔记-第九章 接口
- CocoaPods安装及使用详情