您的位置:首页 > 其它

dom4j操作xml时的乱码与格式化

2012-12-30 13:00 351 查看
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。(Hibernate用此项目来解析hbm映射文件)

下面的java代码演示如何写xml文件

  
import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.XMLWriter;

/**

* @Copyright @ 2012 All right reserved

* @version 创建时间:Created on 2012-12-20

* @author 作者:Create by www.360buyli.com

* @Email: 360buyli@gmail.com

* @description 用于操作xml

*/

public class XmlUtil {

public void generateDocument() {

  Document document = DocumentHelper.createDocument();

  Element catalogElement = document.addElement("catalog");

  catalogElement.addComment("An XML Catalog");

  catalogElement.addProcessingInstruction("target", "text");

  Element journalElement = catalogElement.addElement("student");

  journalElement.addAttribute("stuName", "张三");

  Element clsElement=journalElement.addElement("class");

  clsElement.addAttribute("claName","电气一班");

  document.addDocType("catalog", null, "file://c:/Dtds/catalog.dtd");

  try {

     OutputFormat format = OutputFormat.createPrettyPrint();

        format.setEncoding("GB2312");

       XMLWriter output = new XMLWriter(new FileWriter(new File("c:/catalog.xml")),format);


   output.write(document);

   output.close();

  } catch (IOException e) {

   System.out.println(e.getMessage());

  }

}

public static void main(String[] argv) {

  XmlUtil dom4j = new XmlUtil();

  dom4j.generateDocument();

}

}

往往操作文件并不是实现本身,而是在操作文本是碰到的乱码问题。操作xml这样的文本文件同样会存在乱码问题。刚开始没有加红色加粗部分时,写出来的xml文件完全是没有格式化的,还是就是中文乱码。从类的命名,可以看出这个处理对输入的格式化。后面的设置编码也正好解决了乱码的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: