xml文档的生成与解析头文件字符集的设定

原创 2015年11月18日 15:00:10

package com.company.item.desc;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.net.MalformedURLException;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/** * * @author hongliang.dinghl * Dom4j 生成XML文档与解析XML文档 */
public class Dom4j {
   //方法测试
    public static void main(String[] args) throws Exception {
 Dom4j.createXml("create.xml");
 try {
     Dom4j.parserXml("create.xml");
 } catch (MalformedURLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
 }
    }

    // 生成XML文档
    public static void createXml(String fileName) throws Exception {
 Document document = DocumentHelper.createDocument();
 Element employees=document.addElement("employees"); 
 Element des=employees.addElement("des");  
 Element desms= des.addElement("desms");  
 desms.setText("加密模式为des"); 
 Element key=des.addElement("key");  
 key.setText("heooodes"); 
 Element desInfo=des.addElement("desInfo");
 desInfo.setText("加密内容为4545啊法师打发fdasdf5a4dsf54s5df");  
    // String ss = document.asXML();
      
 try {
    Writer fileWriter = new FileWriter("create.xml");
     //xml头文件字符集设定,如果xml内容是什么字节编码则这里最好对应不然解析后内容会出现乱码
     org.dom4j.io.OutputFormat format = new OutputFormat();
     format.setEncoding("utf-8");
     XMLWriter xmlWriter = new XMLWriter(fileWriter, format);
     xmlWriter.write(document);
     xmlWriter.close();
 } catch (IOException e) {
     e.printStackTrace();
 }
    }

    // 解析xml文档
    public static void parserXml(String fileName) throws MalformedURLException {
 File inputXml = new File(fileName);
      
 SAXReader saxReader = new SAXReader();
 
 try {
     Document document = saxReader.read(inputXml);
     Element employees = document.getRootElement();
     for (Iterator i = employees.elementIterator(); i.hasNext();) {
  Element employee = (Element) i.next();
  for (Iterator j = employee.elementIterator(); j.hasNext();) {
      Element node = (Element) j.next();
      System.out.println(node.getName() + ":" + node.getText());
  }
     }
   
 } catch (DocumentException e) {
     e.printStackTrace();
 }

    }

}

/*********************************************************************************************以下String ss被转换为字节对应的数字来保存字,解析方法改为GBK不会出现乱码/

  //生成TXT文件
    private static void stf(String ss) throws Exception {

 FileOutputStream fos = new FileOutputStream("des.txt");
 FileOutputStream fxs = new FileOutputStream("dex.xml");
 fos.write(ss.getBytes("GBK"));
 fxs.write(ss.getBytes("GBK"));
 fos.close();
 fxs.close();
    }

    // 生成xml文档头文件编码格式为UTF-8
    private static void xml(String ss) throws Exception {
 Document doc = DocumentHelper.createDocument();

 Element root = doc.addElement("DES");
 // 添加属性名 DES
 root.addAttribute("DES", "DES加密内容");
 // 添加节点内容
 root.setText(ss);
 String xml = doc.asXML();
 System.out.println(xml);
 FileOutputStream fxs = new FileOutputStream("DES.xml");
 fxs.write(xml.getBytes("utf-8"));
 fxs.close();
    }

    // 字符串生成xml文档头文件编码格式为GBK
    private static void createXml(String path, String ss) throws IOException {
 // 创建一个dom文档对象
 Document dom = DocumentHelper.createDocument();
 // 为文档添加根节点 des
 Element root = dom.addElement("des");
 // 为根节点添加属性名称和属性值
 root.addAttribute("des", "des加密内容");
 // 为根节点添加内容
 root.setText(ss);
 // 得到一个xml格式的字符串
 // String sxml = dom.asXML();
 FileWriter fwr = new FileWriter(path);
 OutputFormat format = new OutputFormat();
 format.setEncoding("GBK");
 XMLWriter xmlr = new XMLWriter(fwr, format);
 xmlr.write(dom);
 xmlr.close();
    }
    //解析xml文档
    private static void parseXml(String path) throws Exception{
 File file = new File(path);
 SAXReader sr = new SAXReader();
 Document dom = sr.read(file);
 Element root =dom.getRootElement();
 System.out.println("根节点为:"+root.getName()+"*****"+"根节点内容为:"+root.getText()); 
    }

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

一个xml文档文件,用于解析

  • 2011年07月07日 09:52
  • 135KB
  • 下载

java中DOM解析xml文档却找不到文件

今天,老师讲到利用document对象解析xml文档,在做练习时发现一个问题,     系统找不到指定的xml文件,一开始以为将pet2.xml和TestDom.java放到同一目录下即可,...
  • boloyz
  • boloyz
  • 2012年07月10日 21:28
  • 4189

Android数据存储——2.文件存储_D_SAX解析XML文档

今天学习Android数据存储——文件存储_SAX解析XML文档     SAX是采用事件驱动,就是说他不需要完全读完xml文件,他是读到一个节点就解析一个节点是否符合xml语法,如果符合就调用相对...

Android数据存储——2.文件存储_E_Pull解析XML文档

今天学习Android数据存储——文件存储_Pull解析XML文档      如果在一个XML文档中我们只需要前面一部分数据,但是使用SAX方式或DOM方式会对整个文档进行解析,尽管XML文档中...

Android数据存储——2.文件存储_C_DOM解析XML文档

今天学习Android数据存储——文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件...

JDom解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317...

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了...
  • hai330
  • hai330
  • 2017年06月07日 11:02
  • 207

1dom4j api 详解++2dom4j生成或解析xml文档

dom4j api 详解及dom4j生成或解析xml文档 dom4j api 详解   1、DOM4J简介     DOM4J是 dom4j.org 出品的一个开源 XML 解析包。...

Dom4j解析和生成XML文档

一、前言     dom4j是一套非常优秀的java开源api,主要用于读写xml文档,具有性能优异、功能强大、和非常方便使用的特点。   另外xml经常用于数据交换的载体,像调用webservic...

Dom4j解析和生成XML文档

source: http://blog.csdn.net/chenghui0317/article/details/11486271 原创作品,允许转载,转载时请务必以超链接形式标明文章 原...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml文档的生成与解析头文件字符集的设定
举报原因:
原因补充:

(最多只允许输入30个字)