`
yang_min
  • 浏览: 339152 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

采用org.w3c.dom进行XML操作(三)

阅读更多
XmlCreater.java

 用于创建XML文件

/********************************************************************
 * 项目名称    :rochoc   <p>
 * 包名称      :rochoc.xml.oper <p>
 * 文件名称    :XmlCreater   <p>
 * 编写者     :luoc    <p>
 * 编写日期    :2005-6-22    <p>
 * 程序功能(类)描述 : 创建DOM并生成XML文件      <p>
 * 
 * 程序变更日期   :
 * 变更作者    :
 * 变更说明    :
********************************************************************/
package rochoc.xml.oper;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * 类名:XmlCreater  <p>
 * 类描述: 创建DOM并生成XML文件<p>
 * 编写者 :luoc<p>
 * 编写日期 :2005-6-22<p>
 * 主要public成员变量:<p>
 * 主要public方法:   <p>
 **/

public class XmlCreater
{
    /**
     *构造函数说明:       <p>
     *参数说明:@param path  xml文件路径 <p>
    **/
    public XmlCreater(String path)
    {
        this.path=path;
        init();
    }
    
    /**
    * 方法名称:init<p>
    * 方法功能: 初始化函数           <p>
    * 参数说明: <p>
    * 返回:void <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    private void init()
    {
        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
        try
        {
            DocumentBuilder builder=factory.newDocumentBuilder();
            doc=builder.newDocument();//新建DOM
        }catch(ParserConfigurationException e)
        {
            logger.error("Parse DOM builder error:"+e);
        }
    }
    
    /**
    * 方法名称:createRootElement<p>
    * 方法功能:创建根结点,并返回            <p>
    * 参数说明:@param rootTagName <p>
    * 返回:Element <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    public Element createRootElement(String rootTagName)
    {     
        if(doc.getDocumentElement()==null)
        {
            logger.debug("create root element '"+rootTagName+"' success.");
            Element root=doc.createElement(rootTagName);
            doc.appendChild(root);
            return root;
        }
        logger.warn("this dom's root element is exist,create fail.");
        return doc.getDocumentElement();
    }
    
    /**
    * 方法名称:createElement<p>
    * 方法功能:在parent结点下增加子结点tagName<p>
    * 参数说明:@param parent
    * 参数说明:@param tagName <p>
    * 返回:Element <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    public Element createElement(Element parent,String tagName)
    {
        Document doc=parent.getOwnerDocument();
        Element child=doc.createElement(tagName);
        parent.appendChild(child);        
        return child;
    }
    
    /**
    * 方法名称:createElement<p>
    * 方法功能:在parent结点下增加值为value的子结点tabName<p>
    * 参数说明:@param parent
    * 参数说明:@param tagName
    * 参数说明:@param value <p>
    * 返回:Element <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    public Element createElement(Element parent,String tagName,String value)
    {
        Document doc=parent.getOwnerDocument();
        Element child=doc.createElement(tagName);
        XmlOper.setElementValue(child,value);
        parent.appendChild(child);
        return child;
    }
    
    /**
    * 方法名称:createAttribute<p>
    * 方法功能:在parent结点下增加属性 <p>
    * 参数说明:@param parent
    * 参数说明:@param attrName 属性名
    * 参数说明:@param attrValue 属性值<p>
    * 返回:void <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    public void createAttribute(Element parent,String attrName,String attrValue)
    {
        XmlOper.setElementAttr(parent,attrName,attrValue);        
    }
    
    /**
    * 方法名称:buildXmlFile<p>
    * 方法功能:根据DOM生成XML文件<p>
    * 参数说明: <p>
    * 返回:void <p>
    * 作者:luoc
    * 日期:2005-6-22
    **/
    public void buildXmlFile()
    {
        TransformerFactory tfactory=TransformerFactory.newInstance();
        try
        {
            Transformer transformer=tfactory.newTransformer();
            DOMSource source=new DOMSource(doc);
            logger.debug("New DOMSource success.");
            StreamResult result=new StreamResult(new File(path));
            logger.debug("New StreamResult success.");
            transformer.setOutputProperty("encoding","GBK");
            transformer.transform(source,result);
            logger.debug("Build XML File '"+path+"' success.");
        }catch(TransformerConfigurationException e)
        {
            logger.error("Create Transformer error:"+e);
        }catch(TransformerException e)
        {
            logger.error("Transformer XML file error:"+e);
        }
    }
    
    /**
     * @return 返回 doc。
     */
    public Document getDoc()
    {
        return doc;
    }
    /**
     * @param doc 要设置的 doc。
     */
    public void setDoc(Document doc)
    {
        this.doc = doc;
    }
    /**
     * @return 返回 path。
     */
    public String getPath()
    {
        return path;
    }
    /**
     * @param path 要设置的 path。
     */
    public void setPath(String path)
    {
        this.path = path;
    }
    /*全局变量*/
    private Logger logger = Logger.getLogger(getClass().getName());
    private Document doc=null;//新创建的DOM
    private String path=null;//生成的XML文件绝对路径
}

 

分享到:
评论
2 楼 uule 2011-09-01  
代码没写全。。。
1 楼 uule 2011-09-01  
这是什么XmlOper?

相关推荐

    w3c-dom.jar 包

    w3c-dom.jar 包 dom解析xml使用 包 免积分下载

    java操作xml dom dom4j sax jdom

    Java 四种方式操作xml,包括xml,dom,sax,jdom这四种方式的一个简单例子。

    dom4j api 参考手册

    org.dom4j.dom An implementation of the dom4j API which also supports the W3C object model. org.dom4j.dtd Classes to represent the DTD declarations. org.dom4j.io Provides input and output via SAX and ...

    Chenso:Chenso 是一个 org.w3c.dom XML wrapperparser 库

    Chenso 是一个 org.w3c.dom XML 包装器/解析器库。 基本用法 运行测试 视窗 gradlew test Unix ./gradlew test 建造 视窗 gradlew.bat build Unix ./gradlew build 用法 获取 XML 元素中名称的第一个值 String ...

    dom.sax.pull解析

    Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的形式通知程序,对Xml进行解析。 Ø 3、XMLPULL(org.xmlpull.v1) ...

    java SE API

    JavaTM 2 Platform Standard Ed. 5.0 所有类 软件包 java.applet java.awt ...org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers

    Javase-6.0_中文API_HTML(最新更新)

    javase 中文API 最新版 ******************************* JavaTM 2 Platform Standard Ed....org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers

    jdk 中文版

    java jdk api帮助文档中文版 JavaTM Platform Standard Ed. 6 所有类 软件包 ...org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers

    分享一个xml解析方法

    一个xml的解析方法,供参考。 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource;

    J2EE.v1.3.1.API.chm

    v 1.3 API Specification Compiled to .CHM by 貀vind Stegard Packages javax.activation javax.ejb javax.ejb.spi ...w3c.dom org.xml.sax org.xml.sax.ext org.xml.sax.helpers

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    W3C 标准 XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。 换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 -&gt;操作创建或...

    W3C DOM操作

    DOM W3C标准操作XML读取,添加,删除,修改的一些简单代码,希望在关键的时候能帮上大家解决一些问题,能帮上的话,请大家多多捧场,没帮上的话,还请大家多多指教,谢谢

    用VB 6操作XML文件

    Call Root_Node.setAttribute("属性", "http://www.w3.org/2001/XMLSchema") Call Root_Node.setAttribute("属性", "http://www.w3.org/2001/XMLSchema-instance") Call Root_Node.setAttribute("属性", ...

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    JDKTM 6 Documentation Legal Notices API, Language, and VM Specs Features Guides Release ...org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.xml.sax org.xml.sax.ext org.xml.sax.helpers

    java解析xml

    import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class ReadXML { public static void main(String...

    JAVA_API1.6文档(中文)

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml...

    fluentxml4j:Java中用于XML解析,序列化,XPath查询和转换的fluent API

    FluentXML4J-Java中XML的流畅API XML解析,序列化XPath查询和转换,无需样板代码 ...通过XPath查询org.w3c.dom.Document以获取String,Boolean,Number,org.w3c.dom.Element或Node,并使用Java 8 Streaming API

    xmlDom手册(离线).

    网上下的xmldom教程都是联网版,于是考虑用Teleport Pro将网上教程一锅端,很小部分资源为提供,有需要请到http://www.w3school.com.cn/xmldom/index.asp下载。

    xml-apis.jar包

    xml-apis.jar org.w3c.dom.bootstrap.domimplementationregistry class

    利用Dom4j生成XML和解析XML

    Namespace namespace1 = new DefaultNamespace("xs", "http://www.w3.org/2001/XMLSchema"); Namespace namespace2 = new DefaultNamespace("", namespace); root.add(namespace1); root.add(namespace2); ...

Global site tag (gtag.js) - Google Analytics