dom4j实际应用

[size=medium][b][color=darkred]创建Document基本操作[/color][/b][/size]


public static void BaseOperation() {
// 创建一个Document对象
Document document = DocumentHelper.createDocument();

// 创建一个根节点,根节点的名称为root
Element root = document.addElement("root");

// 为根节点root添加一个名称为"book"子节点
Element book1 = root.addElement("vehicle");

// 为book1添加属性"type",该属性参数为"science"
book1.addAttribute("type", "car");

// 为book1添加一个名称为"name"子节点
Element name1 = book1.addElement("Name");

// 并设置其"name"子节点的值为"Java"
name1.setText("BMW");

// 为"book1"再创建一个"price"子节点,并设其值为"100"
book1.addElement("price").setText("200w");


// 为根结点root添加第二个"book"子节点, 并设置该"book"子节点的"type"属性为"science"
Element book2 = root.addElement("vehicle").addAttribute("type", "wagon");

// 为book2添加"name"子节点
Element name2 = book2.addElement("Name");

// 并设置其"name"子节点的值为"Oracle"
name2.setText("Benz");

// 为book2创建一个"price"子节点,并设其值为200
book2.addElement("price").setText("100w");


// 输出XML在控制台
System.out.println(document.asXML());
}


[b]说明:[/b]
[list]
[*]首先,需要创建Document对象,下面将通过Document对象进行节点,属性,值的配置;
[*]通过Document.addElement("节点名")创建节点,并将节点赋值给Element对象;
[*]通过Element.addAttribute("属性名","属性值"),在该Element节点下创建一个属性和设置其属性值;
[*]通过Element.setText("值")设置该Element对象节点的值;
[/list]

[size=medium][b][color=darkred]通过符合Document规范的格式生成Document对象[/color][/b][/size]


/**
* 将字符串转化为Document
*
* @param str
* 输入的字符串
* @return 生成的document
* @throws DocumentException
*/
public static Document parserStrtoDocument(String str) {
Document document = null;
try {
document = DocumentHelper.parseText(str);
} catch (DocumentException e) {
e.printStackTrace();
System.out.println("cao");
}
return document;
}


[b]说明:[/b]
[list]
[*]通过DocumentHelper.parseText(str);将字符串格式化为Document对象格式规范;
[*]str格式为例:"<?xml version='1.0' encoding='UTF-8'?><root><vehicle type='car'><Name>BMW</Name><price>200w</price></vehicle><vehicle type='freight vehicle'><Name>Benz</Name><price>100w</price></vehicle></root>";
[*]注意:抛出DocumentException异常,当字符串不符合Document对象格式规范时,将捕获这个异常;
[/list]

[size=medium][b][color=darkred]取得xml节点属性的基本方法[/color][/b][/size]


/**
* 取得XML的节点和属性的值
* @throws DocumentException
*/
public static void getBaseInfofromDocument() throws DocumentException {
String str = "<?xml version='1.0' encoding='UTF-8'?><root><vehicle type='car'><Name>BMW</Name><price>200w</price></vehicle>"
+ "<vehicle type='freight vehicle'><Name>Benz</Name><price>100w</price></vehicle></root>";
// 生成一个Document,得到XML文档内容
Document document = DocumentHelper.parseText(str);
// 取得XML文档根结点
Element root = document.getRootElement();
// 通过根节点对象取得"vehicle"子节点
Element vehicle = root.element("vehicle");
// 根绝"book"节点对象取得"book"子节点的"type"属性值
String type = vehicle.attributeValue("type");
// 根据"book"节点对象取得"Name"子节点
Element name = vehicle.element("Name");
// 取得书名
String carname = name.getText();
// 取得书的价钱
String price = vehicle.element("price").getText();

// 输出书目信息
System.out.println("车名:" + carname);
System.out.println("类别:" + type);
System.out.println("价格:" + price);
}


[b]说明:[/b]
[list]
[*]DocumentHelper.parseText(str);得到XML文档,作为Document对象;
[*]document.getRootElement();得到根节点;
[*]根节点对象.attributeValue("type");得到子节点属性;
[*]节点.element("需要取得的节点名");得到该节点的值;
[/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值