• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-60  評論-98  文章-0  trackbacks-0
            Part1:對節(jié)點的操作

            重命名節(jié)點、合并內(nèi)存中的兩個文檔或者將一個文檔中的部分內(nèi)容加入到另一個文檔中

            1// Renaming nodes
            2Element element = document.createElementNS("http://example.com""street");
            3// if implementation can rename the node, element returned
            4// is the same object as was originally created
            5element = document.renameNode(element, "http://example.com""address");
            6// adopting previously created node to a different document
            7Node adoptedNode = document2.adoptNode(element);
            8

            比較節(jié)點——測試兩個節(jié)點是否相等、是否相同以及它們在文檔資料樹中的相對位置
            兩個對象要相同,它們必須在內(nèi)存中是 同一個對象。另一方面,兩個對象要相等,它們只需具有相同的特性即可。因此,兩個相同的對象必定是相等的,但是兩個相等的對象不一定是相同的。
            isEqualNode  // 判等
            isSameNode  // 判同
            compareDocumentPosition  // 一個節(jié)點是另一個節(jié)點的后代還是祖先、在前面還是后面等等

            處理文本——檢索和設置一個 Element 節(jié)點的文本內(nèi)容、wholeText
            1String oldContent = elem.getTextContent();
            2elem.setTextContent("content");
            3
            Text 接口的新屬性 wholeText 它返回在邏輯相鄰的文本節(jié)點中所包含的所有文本

            使用數(shù)據(jù)
            當附加了一些數(shù)據(jù)的節(jié)點上有事件發(fā)生時,已注冊的處理程序將被調用,并提供所有必需的信息來相應地更新結構

            Part2:對文檔的操作、訪問類型信息和Xerces中的實現(xiàn)方式
            映射到 Infoset——新的 Appendix C 提供了 XML Infoset 模型與 DOM 之間的映射
             1// XML Declaration information on
             2// the org.w3c.dom.Document interface
             3public String getXmlEncoding(); //獲取變法方式
             4public void setXmlEncoding(String xmlEncoding); // 設置編碼方式
             5public boolean getXmlStandalone();
             6public void setXmlStandalone(boolean xmlStandalone)
             7                                  throws DOMException;
             8public String getXmlVersion(); // xml版本
             9public void setXmlVersion(String xmlVersion)
            10                                  throws DOMException;
            11// element content whitespace property on the Text 
            12// interface
            13public boolean isWhitespaceInElementContent(); // 一個 Text 節(jié)點是否只包含可以被忽略的空白
            14
            通過 Attr 接口的 schemaTypeInfo 屬性,您還可以獲取一個屬性信息項的屬性類型特性的值 ——即一個屬性的類型。
            在這種映射中,XML Infoset 信息項都映射到其相應的 Node ,反之也一樣,一個信息項的每一個屬性都映射到其相應 Node 的屬性

            自舉——DOMImplementationRegistry 對象,通過使用機制機制,就可以使用對于應用程序最合適的實現(xiàn)
            1// set DOMImplementationRegistry.PROPERTY property 
            2// to reference all known DOM implementations
            3System.setProperty(DOMImplementationRegistry.PROPERTY,
            4                   "org.apache.xerces.dom.DOMImplementationSourceImpl");
            5// get an instance of DOMImplementationRegistry
            6DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
            7// DOM implementation that support the specified features
            8DOMImplementation i = registry.getDOMImplementation("MutationEvent");
            9

            文檔標準化——Document 接口的 normalizeDocument 方法
            通過 DOMConfiguration 配置 normalizeDocument ,以便對文檔執(zhí)行其他操作
             1// retrieve document configuration
             2DOMConfiguration config = document.getConfig();
             3// remove comments from
             4config.setParameter("comments"false);
             5// remove namespace declarations
             6config.setParameter("namespace-declarations"false);
             7// transform document
             8core.normalizeDocument();
             9// put document into a form closest to the XML Infoset 
            10config.setParameter("infoset"true);
            11// transform document
            12core.normalizeDocument();
            13
            normalizeDocument 方法還允許您用 XML Schema 或者 DTD 對內(nèi)存中的文檔進行重新驗證
            為此,首先需要將 DOMConfiguration validate 參數(shù)設置為 true 。然后需要實現(xiàn)一個 DOMErrorHandler 對象,驗證錯誤將報告給這個對象,再用 error-handler 參數(shù)將這個對象注冊到 Document 上。這與對 SAX 解析器所做的工作很類似。最后,可以通過調用 normalizeDocument 檢查文檔是否有效。

            訪問類型信息——名為 TypeInfo 的新接口
            如果使用 DTD (在裝載的時候,或者使用 normalizeDocument ),那么一個屬性節(jié)點的 TypeInfo 表示這個屬性的類型。在 XML Infoset 中這是屬性信息項的屬性類型屬性。不過,對于元素節(jié)點, TypeInfo 的名稱為 null ,命名空間 URI 為 null ,這是因為 DTD 沒有定義元素類型。
            如果使用 XML Schema 驗證文檔,那么 TypeInfo 在元素節(jié)點上表示元素類型,而在屬性節(jié)點上表示屬性類型。

            在 Xerces2 中使用 DOM Level 3 API
             1// Retrieve configuration
             2DOMConfiguration config = document.getConfig();
             3// Set document base URI
             4document.setDocumentURI("file:///c:/data");
             5// Configure the normalizeDocument operation
             6config.setParameter("schema-type""http://www.w3.org/2001/XMLSchema");
             7config.setParameter("validate"true);
             8config.setParameter("schema-location""personal.xsd");
             9// Revalidate your document in memory
            10document.normalizeDocument();
            11
            驗證內(nèi)存中的文檔
            posted on 2009-06-12 18:28 創(chuàng)建更好的解決方案 閱讀(1511) 評論(0)  編輯 收藏 引用 所屬分類: 面向對象軟件設計
            久久精品国产免费观看三人同眠| 久久精品国产男包| 亚洲∧v久久久无码精品| 日韩久久久久久中文人妻| 久久久久成人精品无码中文字幕| 国产精品久久久久久久久鸭| 国产精品久久自在自线观看| 日本三级久久网| 亚洲精品无码成人片久久| 女人香蕉久久**毛片精品| 性做久久久久久免费观看| 久久精品国产久精国产思思| 久久伊人五月天论坛| 777米奇久久最新地址| 亚洲婷婷国产精品电影人久久 | Xx性欧美肥妇精品久久久久久| 国产成人无码精品久久久免费| 伊人久久大香线蕉综合影院首页| 国产精品欧美久久久天天影视| 狠狠色丁香婷婷久久综合五月| 18岁日韩内射颜射午夜久久成人 | 国产99久久精品一区二区| 一级做a爰片久久毛片毛片| 久久综合九色综合欧美狠狠| 久久精品免费全国观看国产| 品成人欧美大片久久国产欧美| 久久av无码专区亚洲av桃花岛| 综合久久一区二区三区| 久久精品国产福利国产琪琪| 久久噜噜电影你懂的| 久久久久久人妻无码| 色妞色综合久久夜夜| 影音先锋女人AV鲁色资源网久久| 久久久久久久综合日本| 99久久夜色精品国产网站| 国产精品99久久久久久人| 精品国产乱码久久久久久郑州公司 | 无码久久精品国产亚洲Av影片| 中文字幕精品久久久久人妻| 怡红院日本一道日本久久 | 亚洲中文字幕久久精品无码APP|