欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

dom4j解析和处理xml文档,dom4jxml文档,本文将介绍如何通过dom

来源: javaer 分享于  点击 18945 次 点评:64

dom4j解析和处理xml文档,dom4jxml文档,本文将介绍如何通过dom


本文将介绍

如何通过dom4j来对xml文档进行增、删、改、查如何从本地读入xml文档如何把xml文档转换成xml字符串如何把xml输出以指定的编码输出到xml文档。如何把xml字符串转换成document。

创建document、添加节点、属性及注释

package com.xml.dom4j;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.XMLWriter;     /**      * 创建document      * @return      */    public static Document createDomFJ(){        Document doc =DocumentHelper.createDocument();        return doc;    }    /**     * 给文档添加根节点     * @param elName 子节点名称     * @param doc   文档     * @return     */    public static Element appendChile(String elName,Document doc){        Element root=doc.addElement(elName);        return root;    }    /**     * 给父节点添加子节点     * @param elName 子节点的名称     * @param el  父节点     * @return     */    public static Element appendChile(String elName,Element el){        Element sub=el.addElement(elName);        return sub;    }    /**     * 添加子节点及其对应的值     * @param elName 子节点的名称     * @param value   子节点的值     * @param el     父节点     */    public static void appendChile(String elName,String value,Element el){        Element sub=el.addElement(elName);        sub.setText(value);    }      /**     * 根目录添加注释     * @param explain  说明文字     * @param doc     */    public static void addCommend(String explain,Document doc){        doc.addComment(explain);    }    /**     * 为子节点添加说明     * @param explain     * @param element     */    public static void addCommend(String explain,Element element){        element.addComment(explain);    }    /**     * 为节点添加属性     * @param attName     * @param attValue     * @param element     */    public static void addAttribute(String attName,String attValue,Element element){        element.addAttribute(attName, attValue);    }}

asXML可以将文档或元素转换成一段xml字符串

String docStr=doc.asXML();  //把xml文档转换成字符串  System.out.println("docStr==="+docStr);String pdsStr=pds.asXML();   //把父节点转换成字符串System.out.println("pdsStr=="+pdsStr); //结果如插图所示

parseText完成将xml字符串转换成Doc的功能

String pdsStr=<PDS><HEAD><TRNCOD>交易代码</TRNCOD><LGNNAM>登陆名称</LGNNAM></HEAD></PDS>;Document docpds=null;try {      docpds=DocumentHelper.parseText(docStr);      docpds.setXMLEncoding("GBK");     } catch (DocumentException e) {    // TODO Auto-generated catch block    e.printStackTrace();        }

XMLWriter类可以把文档写入到文件中,并设置编码“GBK”

public class JavaCreateDom4j {    public static void main(String[] args){        //引用http://www.blogjava.net/hoojo/archive/2011/08/11/356310.html        Document doc=createDomFJ();        doc.addComment("以GBK的编码");        Element pds=doc.addElement("PDS");        /*格式化输出*/        org.dom4j.io.OutputFormat format=org.dom4j.io.OutputFormat.createPrettyPrint();//紧缩        format.setEncoding("GBK");    //设置GBK编码        Element head=pds.addElement("HEAD");        Element trancod=head.addElement("TRNCOD");        trancod.setText("交易代码");        Element lgnnam=head.addElement("LGNNAM");        lgnnam.setText("登陆名称");             try {     XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("d:/test/xml/dom4jtest1.xml")),format);             writer.write(doc);           writer.close();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

递归显示xml文档内容

//文件格式:<?xml version="1.0" encoding="GBK"?><!--以GBK的编码--><PDS>  <HEAD>    <TRNCOD>交易代码</TRNCOD>    <LGNNAM>登陆名称</LGNNAM>  </HEAD>  <body>    <name>张学友</name>  </body></PDS>
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;public class JavaCreateDom4j {    public static void main(String[] args){        //读取xml文档        SAXReader saxReader=new SAXReader();        Document doc=null;        try {             doc =saxReader.read(new FileInputStream(new File("d:/test/xml/dom4jtest1.xml")));        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }         List<Element> listEl=doc.getRootElement().elements();         print(listEl);} /**     * 递归显示文档内容     * @param els  elements数组     */    public static void print(List<Element> els){        for(Element el:els){            System.out.println("##"+el.getName()+"--value=="+el.getTextTrim());            if(el.hasContent()){                print(el.elements());            }        }    }}
相关栏目:

用户点评