XML,可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
在Java中,我们利用dom4j和jaxen两个jar包更便利地在程序中使用xml 。
写入xml文件。
//1创建空文档
Document doc=DocumentHelper.createDocument();
//添加根元素
Element root=doc.addElement("书籍列表");
//在根元素上添加元素
Element book=root.addElement("武侠小说");
Element title=book.addElement("书名");
Element author=book.addElement("作者");
//设置内容
title.setText("天龙八部");
author.setText("金庸");
//添加属性
book.addAttribute("bookNo","1001");
book.addAttribute("hot","true");
写入开始
//创建写入流用于写入数据
FileWriter writer=new FileWriter(fileName);
//设置编码格式
OutputFormat ou=OutputFormat.createPrettyPrint();
ou.setEncoding("gb2312");
//XMLWriter写出xml文件
XMLWriter xmlWriter=new XMLWriter(writer,ou);
xmlWriter.write(doc);
xmlWriter.close();
读取xml文件。
SAXReader reader=new SAXReader();---获得解析器
File f=new File("src/book.xml");---指定解析文件
//构造文档树并且返回
Document document=reader.read(f);
//获得根元素
Element rootElement=document.getRootElement();
获得book元素
List<Element> list=rootElement.elements("book");
Iterator<Element> it=list.iterator();
//打印信息
while(it.hasNext()){
Element e=it.next();
System.out.println(e.elementText("title"));
System.out.println(e.elementText("author"));
System.out.println(e.elementText("price"));
}
打印属性
while(it.hasNext()){
Element e=it.next();
List att=e.attributes();
Iterator attit=att.iterator();
while(attit.hasNext()){
Attribute atts=(Attribute) attit.next();
System.out.println(atts.getName()+" "+atts.getValue());
}
}