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

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

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

    java隨記

    堅持就是勝利!

     

    用JAXP dom 構建帶名稱空間的xml文檔

    ?網上好象關于如何構建支持名稱空間的xml文檔的資料似乎并不多 剛好啃過一下這方面的類容 也就借
    Blog貼點,權當自己做了個筆記 .

    ?先簡要介紹一下用到的類及其方法,更詳細的介紹只有看java api文檔了?????
    DocumentBuilderFactory創(chuàng)建DOM解析器的工廠 調用其newInstance()方法實例化 然后用該實例創(chuàng)建DocumentBuilder
    實例 該實例表示一個dom解析器????????
    ?DocumentBuilderFactory.setNamespaceAware(true); 提供對 XML 名稱空間的支持。
    DOMImplementation? 允許用戶用根Element的限定名稱和XML命名空間創(chuàng)建新Document
    Document createDocument(String namespaceURI,String qualifiedName,???? DocumentType doctype)throws DOMException創(chuàng)建具有文檔元素的指定類型的 DOM Document 對象。
    ? 參數:? namespaceURI - 要創(chuàng)建的文檔元素的名稱空間 URI 或 null。? qualifiedName - 要創(chuàng)建的文檔元素的限定名稱或 null。
    ? doctype - 要創(chuàng)建的文檔的類型或 null。當 doctype 不是 null 時,其 Node.ownerDocument 屬性將被設置為正在創(chuàng)建的文檔。
    返回:具有文檔元素的新 Document 對象。如果 NamespaceURI、qualifiedName 和 doctype 為 null,則返回的 Document 為空的,不帶有文檔元素
    Element getDocumentElement()這是一種便捷屬性,該屬性允許直接訪問文檔的文檔元素的子節(jié)點。
    Element createElementNS(String namespaceURI, String qualifiedName)? throws DOMException創(chuàng)建給定的限定名稱和名稱空間 URI 的元素。依據 [XML Namespaces],如果應用程序不希望使用名稱空間,則必須將 null 作為方法的 namespaceURI 參數的值。
    參數:namespaceURI - 要創(chuàng)建的元素的名稱空間 URI。qualifiedName - 要實例化的元素類型的限定名稱。 返回:具有以下屬性的新 Element 對象: 屬性 值 Node.nodeName qualifiedName Node.namespaceURI namespaceURI Node.prefix 前綴,從 qualifiedName 中提取的;如果沒有前綴,則為 null? Node.localName 本地名稱,從 qualifiedName 提取的 Element.tagName qualifiedName

    Document對象的createAttributeNS Attr createAttributeNS(String namespaceURI,?????? String qualifiedName)?? throws DOMException創(chuàng)建給定的限定名稱和名稱空間 URI 的屬性。對于每個 [XML Namespaces],如果應用程序希望沒有名稱空間,則它們必須將 null 作為方法的 namespaceURI 參數的值。 參數:namespaceURI - 要創(chuàng)建的屬性的名稱空間 URI。qualifiedName - 要實例化的屬性的限定名稱。

    Element對象的setAttributeNS方法 void setAttributeNS(String namespaceURI, String qualifiedName,??? String value)??????????????? throws DOMException?? throws DOMException 添加新屬性 namespaceURI - 要創(chuàng)建或更改的屬性的名稱空間 URI。qualifiedName - 要創(chuàng)建或更改的屬性的限定名稱。value - 以字符串形式設置的值。

    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.dom.*;

    class BuilderXML {
    ??? public final static String SOAP_NS =
    ??????????? "??? public final static String MH_NS =
    ??????????? "
    ??? public final static String XSD_NS = "??? public final static String XSI_NS =
    ??????????? "
    ??? public static void main(String[] args) throws Exception {
    ??????? BuilderXML builderxml = new BuilderXML();

    ??????? DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    ???????
    ????
    ??????? factory.setNamespaceAware(true);
    ??????? DocumentBuilder builder = factory.newDocumentBuilder();

    ??????
    ??????? DOMImplementation doIml = builder.getDOMImplementation();
    ?

    ??????? Document doc = doIml.createDocument(SOAP_NS, "soap:Envelop", null);
    ???????
    ???????
    ??????? Element root = doc.getDocumentElement();

    ??????? root.setAttribute("xmlns:soap", SOAP_NS);
    ??????? root.setAttribute("xmlns:mh", MH_NS);
    ??????? root.setAttribute("xmlns:xsd", XSD_NS);
    ??????? root.setAttribute("xmlns:xsi", XSI_NS);
    ???????

    ??????? Element body = doc.createElementNS(SOAP_NS, "soap:Body");
    ??????? root.appendChild(body);
    ??????? Element getBookPrice = doc.createElementNS(MH_NS, "mh:getBookPrice");
    ??????? body.appendChild(getBookPrice);
    ??????? Element isbn = doc.createElementNS(MH_NS, "isbn");
    ??????? body.appendChild(isbn);
    ??????? Attr typeAttr = doc.createAttributeNS(XSI_NS, "xsi:type"); //attr 只能賦給element
    ??????? typeAttr.setValue("xsd:string");
    ??????? isbn.setAttributeNodeNS(typeAttr);
    ??????? isbn.setAttributeNS( MH_NS,"mh:tt","tt");

    ??????? //創(chuàng)建CDATA段
    ??????? CDATASection cdata=doc.createCDATASection("<hc>ttt</hc>");
    ????????? isbn.appendChild(cdata);
    ???????? // 創(chuàng)建文本
    ????????? Text tt = doc.createTextNode("made? two by hc");
    ????????? isbn.setNodeValue("made by hechang");
    ????????? isbn.appendChild(tt);
    ??????? Text text = doc.createTextNode("0311111");
    ??????? body.appendChild(text);
    ???????? //創(chuàng)建注釋
    ??????? Comment comment = doc.createComment(" written by hc ");
    ??????? doc.insertBefore(comment,root);
    ???????? //創(chuàng)建轉換器并將xml文檔輸出到輸出流 如果輸出流是一個輸出文件流,則生成一個文件
    ??????? Transformer t = TransformerFactory.newInstance().newTransformer();
    ??????? t.setOutputProperty("indent", "yes"); //設置空白輸出

    ??????? t.transform(new DOMSource(doc),
    ??????????????????? new StreamResult(System.out));


    ??? }
    }

    程序輸出:
    <soap:Envelop xmlns:soap="
    xmlns:mh="?xmlns:xsd="?xmlns:xsi="<soap:Body>
    <mh:getBookPrice/>
    <isbn mh:tt="tt" xsi:type="xsd:string" xmlns="
    ? two by hechang</isbn>0311111</soap:Body>
    </soap:Envelop>

    ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 歡迎加入QQ群:30406099?

    posted on 2006-07-03 09:10 傻 瓜 閱讀(1939) 評論(0)  編輯  收藏 所屬分類: jaxp xml

    導航

    統(tǒng)計

    常用鏈接

    留言簿(7)

    我參與的團隊

    隨筆分類

    隨筆檔案

    文章分類

    友情鏈接

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久国内免费视频| 久久九九兔免费精品6| 国产成人免费网站在线观看| 四虎成年永久免费网站| 亚洲精品国产字幕久久不卡| 精品97国产免费人成视频| 亚洲成人影院在线观看| 免费人成视频在线播放| 少妇亚洲免费精品| 日日狠狠久久偷偷色综合免费| 亚洲人成无码网WWW| 国产99久久久久久免费看| 亚洲一区二区三区影院| 国产精品美女免费视频观看| 国产成人麻豆亚洲综合无码精品 | 无码人妻一区二区三区免费手机 | 亚洲日韩在线观看| 亚洲精品黄色视频在线观看免费资源| 亚洲国产成人久久综合碰| 男女一进一出抽搐免费视频| 国产精品免费无遮挡无码永久视频| 亚洲国产精品成人精品无码区| 久久美女网站免费| 亚洲国产电影在线观看| 色视频色露露永久免费观看| 99亚洲男女激情在线观看| 国产亚洲精品线观看动态图| 久久久99精品免费观看| 亚洲三级在线视频| 四虎国产精品免费视| 国产在线精品观看免费观看| 精品亚洲A∨无码一区二区三区| 无码国产精品久久一区免费| 亚洲日韩国产欧美一区二区三区 | 破了亲妺妺的处免费视频国产| 全部一级一级毛片免费看| 人人狠狠综合久久亚洲婷婷| 一二三四视频在线观看中文版免费 | 亚洲香蕉免费有线视频| 国产成人人综合亚洲欧美丁香花| 国产日产亚洲系列最新|