dom4j实际应用

创建Document基本操作

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());
}


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


通过符合Document规范的格式生成Document对象

/**
 * 将字符串转化为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;
}


说明:
  • 通过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对象格式规范时,将捕获这个异常;


取得xml节点属性的基本方法

/**
 * 取得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);
}


说明:
  • DocumentHelper.parseText(str);得到XML文档,作为Document对象;
  • document.getRootElement();得到根节点;
  • 根节点对象.attributeValue("type");得到子节点属性;
  • 节点.element("需要取得的节点名");得到该节点的值;

你可能感兴趣的:(oracle,xml)