<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 55  文章 - 187  trackbacks - 0
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(12)

    隨筆分類

    隨筆檔案

    groovy

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    最近熟悉了一下Dom4,寫了一些小代碼,分為生成與解析。
    一、生成xml
    需要的jar包:dom4j、jaxen
    輸出的結果xml

    <?xml version="1.0" encoding="gb2312"?>

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      
    <!--Envelope Comment--><?target text?>

      
    <SOAP-ENV:Body>
        
    <m:InsertCP xmlns:m="http://tempuri.org/">Hello world!</m:InsertCP>
      
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>


    java代碼

     1package org.xmltool.test;
     2
     3import java.io.FileWriter;
     4import java.io.IOException;
     5
     6import org.dom4j.Document;
     7import org.dom4j.DocumentHelper;
     8import org.dom4j.Element;
     9import org.dom4j.Namespace;
    10import org.dom4j.QName;
    11import org.dom4j.io.OutputFormat;
    12import org.dom4j.io.XMLWriter;
    13
    14public class Test {
    15
    16    /**
    17     * @param args
    18     * @throws IOException
    19     */

    20    public static void main(String[] args) throws IOException {
    21
    22        /* 創建Document */
    23        Document doc = DocumentHelper.createDocument();
    24
    25        /* 創建備用Namespace */
    26        Namespace SOAP_ENV_ns = new Namespace("SOAP-ENV",
    27                "http://schemas.xmlsoap.org/soap/envelope/");
    28        Namespace SOAP_ENC_ns = new Namespace("SOAP-ENC",
    29                "http://schemas.xmlsoap.org/soap/encoding/");
    30        Namespace xsi_ns = new Namespace("xsi",
    31                "http://www.w3.org/2001/XMLSchema-instance");
    32        Namespace xsd_ns = new Namespace("xsd",
    33                "http://www.w3.org/2001/XMLSchema");
    34
    35        /* SOAP-ENV:Envelope */
    36        QName envelopeQName = new QName("Envelope", SOAP_ENV_ns);/* 構造帶名字空間頭信息SOAP-ENV的節點Envelope */
    37        Element envelopeElement = doc.addElement(envelopeQName);
    38        envelopeElement.addComment("Envelope Comment");/* 添加注釋 */
    39        envelopeElement.addProcessingInstruction("target""text");/* 添加指令 */
    40        /* 添加其它名字空間(作為屬性) */
    41        envelopeElement.add(SOAP_ENC_ns);
    42        envelopeElement.add(xsi_ns);
    43        envelopeElement.add(xsd_ns);
    44
    45        /* SOAP-ENV:Body */
    46        QName bodyQName = new QName("Body", SOAP_ENV_ns);
    47        Element bodyElement = DocumentHelper.createElement(bodyQName);
    48        envelopeElement.add(bodyElement);
    49
    50        /* m:InsertCP */
    51        Namespace m_ns = new Namespace("m""http://tempuri.org/");
    52        QName insertCpQName = new QName("InsertCP", m_ns);
    53        Element InsertCpElement = DocumentHelper.createElement(insertCpQName);
    54        bodyElement.add(InsertCpElement);
    55
    56        OutputFormat format = OutputFormat.createPrettyPrint();/* 美化格式的輸出 */
    57        // OutputFormat format = OutputFormat.createCompactFormat();/*
    58        // 壓縮格式的輸出,節省空間 */
    59        format.setEncoding("gb2312");/* xml的編碼 */
    60        XMLWriter writer = new XMLWriter(new FileWriter("c:/test.xml"), format);
    61        writer.write(doc);
    62        writer.close();/* 必寫無疑 */
    63    }

    64}

    65


    二、解析xml
    采用了Visitor模式。通過遍歷XML的各個節點,完成XML解析。

     1package org.xmltool.bean;
     2
     3import org.dom4j.Document;
     4import org.dom4j.DocumentException;
     5import org.dom4j.Element;
     6import org.dom4j.VisitorSupport;
     7import org.dom4j.io.SAXReader;
     8
     9public class MyVisitor extends VisitorSupport {
    10    @Override
    11    public void visit(Element node) {
    12        System.out.println(node.getPath());
    13        if ("InsertCP".equals(node.getName())) {
    14            System.out.println(node.getText());
    15        }

    16    }

    17
    18    public static void main(String[] args) throws DocumentException {
    19        SAXReader reader = new SAXReader();
    20        Document doc = reader.read("c:/test.xml");
    21        doc.accept(new MyVisitor());
    22    }

    23}

    24

    執行結果為:

    /SOAP-ENV:Envelope
    /SOAP-ENV:Envelope/SOAP-ENV:Body
    /SOAP-ENV:Envelope/SOAP-ENV:Body/m:InsertCP
    Hello world!


    --------------------

        WE準高手

    posted on 2008-01-16 11:54 大衛 閱讀(3345) 評論(2)  編輯  收藏 所屬分類: Java

    FeedBack:
    # re: Dom4J的demo 2008-01-16 12:27 久城
    LZ第一篇.......支持下.......  回復  更多評論
      
    # re: Dom4J的demo 2008-01-16 17:41 Kevin Jiang
    路過看到,頂一下^_^  回復  更多評論
      
    主站蜘蛛池模板: 在线观看亚洲免费视频| 亚洲一区二区三区久久| 无遮挡a级毛片免费看| 日本无卡码免费一区二区三区| 亚洲人成综合在线播放| 成人无码区免费A片视频WWW| 亚洲一区精彩视频| 九九九精品成人免费视频| 亚洲人成网站免费播放| 美女被免费视频网站a国产| 亚洲人成电影网站免费| 国产伦一区二区三区免费| 亚洲av成本人无码网站| 一本久到久久亚洲综合| 一个人看的www免费在线视频| 四虎影视免费永久在线观看| 九一在线完整视频免费观看| 中文字幕第13亚洲另类| 免费视频精品一区二区三区| 亚洲资源在线视频| 无码一区二区三区AV免费| 亚洲av无码一区二区三区人妖| 香蕉视频在线观看免费国产婷婷| 亚洲精品无码少妇30P| 亚洲精品第一国产综合精品99 | 久久久亚洲精品无码| 99久久久国产精品免费蜜臀| 亚洲一区无码中文字幕乱码| 日本久久久免费高清| 国产精品无码免费专区午夜 | 91福利免费网站在线观看| 国产精一品亚洲二区在线播放| 99久久精品免费精品国产| 亚洲欧美日韩久久精品| 久久久久噜噜噜亚洲熟女综合| 久久不见久久见免费视频7| 亚洲大码熟女在线观看| 久久亚洲国产午夜精品理论片| 精品久久久久成人码免费动漫| 男人j进女人p免费视频| 久久久久亚洲AV无码观看|