* 为减少DOM、SAX的编码量,出现了JDOM;
* 优点:20-80原则,极大减少了代码量。
* 使用场合:要实现的功能简单,如解析、创建等,
* 但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。
1.新建一个接口类
package com.wepull.xml2;
public interface XmlDocument {
/**
* 建立XML文档
* @param fileName 文件全路径名称
*/
public void createXml(String fileName);
/**
* 解析XML文档
* @param fileName 文件全路径名称
*/
public void parserXml(String fileName);
}
2.新建一个实现类
package com.wepull.xml2;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class JDomDemo implements XmlDocument {
public void createXml(String fileName) {
Document document;
Element root;
root=new Element("employees");
document=new Document(root);
Element employee=new Element("employee");
root.addContent(employee);
Element name=new Element("name");
name.setText("ddvip");
employee.addContent(name);
Element sex=new Element("sex");
sex.setText("m");
employee.addContent(sex);
Element age=new Element("age");
age.setText("23");
employee.addContent(age);
XMLOutputter XMLOut = new XMLOutputter();
try {
XMLOut.output(document, new FileOutputStream(fileName));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void parserXml(String fileName) {
SAXBuilder builder=new SAXBuilder(false);
try {
Document document=builder.build(fileName);
Element employees=document.getRootElement();
List employeeList=employees.getChildren("employee");
for(int i=0;i<employeeList.size();i++){
Element employee=(Element)employeeList.get(i);
List employeeInfo=employee.getChildren();
for(int j=0;j<employeeInfo.size();j++){
System.out.println(((Element)employeeInfo.get(j)).getName()+":"+((Element)employeeInfo.get(j)).getValue());
}
}
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.新建一个测试类
package com.wepull.xml2;
/**
* 测试四种xml解析方式
*/
public class TestXML {
public static void main(String[] args) {
XmlDocument test = new JDomDemo();
String path2= "D:/wepull/TestXML/src/test.xml";
test.createXml(path2);
test.parserXml(path2);
}
}
4.运行并测试
你会发现当前目录下回生成一个为test.xml的文件
控制台上会打印出解析test.xml的内容