• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

Java+XML学习Step by step(三)

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 /* 啊,兄弟们,前两个例子都是jaxp的,现在这个是xerces的,其实两个的差别并不大,只是其中一些地方
* 实现的不同,现在xerces也引入了DocumentBuilderFactory和DocumentBuilder,所以以后要创建一个
* Document对象就可以使用一个统一的接口了,当然,你也可以使用别的方法来得到一个Document实例,
* 下面我们会看到具体的例子
*
* 首先会创建一个新的Document,然后在这个Document基础上创建节点,最后用Serializer输出
*
* author: Belltree
*
*/

// 这个包就不用再讲了,定义了一系列的interface
import org.w3c.dom.*;

// 你可以不用下面这个包,这里import是为了使用DocumentBuilderFactory
import javax.xml.parsers.*;

// 下面这两个看看名字就明白,是实现(Implementation)类
import org.apache.xerces.dom.DocumentImpl;
import org.apache.xerces.dom.DOMImplementationImpl;

// 这是serialize包,用来做输出
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.Serializer;
import org.apache.xml.serialize.SerializerFactory;
import org.apache.xml.serialize.XMLSerializer;

// java.io包,输入输出的
import java.io.*;

/**
* @author Jeffrey Rodriguez
* @version $id$
*/
public class DOMGenerate {
    public static void main( String[] argv ) {
        try {
            /////////////////////////////////////////////////////////////////////////////
            // 这里使用DocumentBuilderFactory来工作,这也是import javax.xml.parsers的原因
            /////////////////////////////////////////////////////////////////////////////
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = null;
            db = dbf.newDocumentBuilder();
            Document doc = db.newDocument();
            ////////////////////////////////////////////////////////////////////////////
            
            // 下面也是一个创建Document实例的方法,如果用这个,就可以不用javax.xml.parsers包
            //Document doc= new DocumentImpl();
            
            // 下面可以看到,所有的Element都由Document实例创建,然后父节点用appendChild方法
            // 将其加到自身节点上
            Element root = doc.createElement("person");     // 创建根节点
            Element item = doc.createElement("name");       // 创建一个名为name的Element节点
            item.appendChild(doc.createTextNode("jack"));   // 创建一个文本节点并加到name节点上
            root.appendChild(item);                         // 将该节点加到根节点上
            item = doc.createElement("age");                // 创建一个名为age的Element节点
            item.appendChild(doc.createTextNode("28"));       
            root.appendChild(item);                         // 在根结点上又加一个
            item = doc.createElement("height");             // 创建一个名为hieght的Element节点
            item.appendChild(doc.createTextNode("1.60"));
            root.appendChild(item);                         // 再加一个,这个跟在age后面
            doc.appendChild(root);                          // 好了,把根节点加到Dcoument上


            OutputFormat format = new OutputFormat(doc);          // Serialize DOM
            
            //StringWriter stringOut = new StringWriter();        // 作为一个字符串输出
            
            OutputStream os = new FileOutputStream("out.xml");    // 也可以输出到文件
            
            //XMLSerializer serial = new XMLSerializer(stringOut, format); // 这个就输出为字符串

            XMLSerializer serial = new XMLSerializer(os, format);          // 这个输出到文件
            
            serial.asDOMSerializer();                             // 作为一个 DOM Serializer

            serial.serialize(doc.getDocumentElement());           // 输出

            //System.out.println("STRXML = " + stringOut.toString()); // 看看输出了些什么
        } catch ( Exception ex ) {
            ex.printStackTrace();
        }
    }
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网