三、JDOM解析XML

为减少DOM、SAX的编码量,出现了JDOM;

优点:20-80原则,极大减少了代码量。

使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。


package FourWayToAnalyticXml;

 

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;

 

import Interface.XmlDocument;

 

 

public class JDOMToAnalyticXml implements XmlDocument {

public static void main(String[] args) {

// TODO Auto-generated method stub

SAXToAnalyticXml sax = new SAXToAnalyticXml();

sax.createXml("domparserXml");

sax.parserXml("domparserXml");

}

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 < employees.getChildren().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();

}

 

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值