XML简介
XML是由万维网协议(w3c)推出的新一代数据交换的标准。
XML:Extensible Markup Language一种扩展性标示语言。可以存储数据和共享数据。是一种结构化文档和通用且适应性强的格式可以被用于任何的地方。
市面上常见的xml解析有很多,如JDom解析、sax解析dom4j解析等等
其中JDom解析是将整个xml文件以DOM树模型加载到内存中,优点:支持回溯,缺点:文档大于10M可能出现内存溢出
SAX解析是将即将需要用的节点加入内存,优点:不占内存,缺点:不支持回溯
dom4j解析是众多产品中平均性能最优的
xml文件生成
要提前导入dom4j.jar包
public void createXML() throws Exception{
//准备writer需要的document(元素,属性,值)
Document doc= DocumentHelper.createDocument();
//通过doc创建跟元素
Element root=doc.addElement("stus");
root.addElement("student")
.addAttribute("id", "001")
.addAttribute("name", "张三")
.addAttribute("sex", "男")
.setText("阿达!");
root.addElement("student")
.addAttribute("id", "002")
.addAttribute("name", "李四")
.addAttribute("sex", "男")
.setText("阿达达!");
//目标文件
File file=new File("D://ccc");
if(!file.exists()){
file.mkdir();
}
//创建输出流,关联目标文件
OutputStream out=new FileOutputStream(file+"//"+"4.xml");
//设定书写xml格式和编码集
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
//将xml写入到指定的文件中
XMLWriter writer=new XMLWriter(out, format);
writer.write(doc);
writer.flush();
writer.close();
out.close();
}
xml文件解析
//解析指定的xml文件
public void parseXMLTest() throws Exception{
//关联源文件
File file=new File("D://3.xml");
//创建xml解析器
SAXReader reader=new SAXReader();
//通过解析器解析文件
Document doc=reader.read(file);
//通多doc得到根元素
Element root=doc.getRootElement();
//得到根元素下的子元素
List<Element> list=root.elements();
//循环遍历解析子元素
for (int i = 0; i < list.size(); i++) {
/*String name= list.get(i).attributeValue("name");
String addr=list.get(i).getText();
System.out.println(addr);*/
Attribute attrName= list.get(i).attribute("name");
System.out.println(attrName.getValue());
}
}