程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> dom規范和在java中的實現 sunmingdong

dom規范和在java中的實現 sunmingdong

編輯:JAVA編程入門知識

  dom規范和在Java中的實現(一) (二)(三)
   sunmingdong
  概念:
  1、DOM就是一個對象化的XML數據接口;
  
  2、一個與語言無關、與平台無關的標准接口規范;
  
  3、它定義了Html文檔和XML文檔的邏輯結構;
  
  4、給出了一種訪問和處理HTML文檔和XML文檔的方法(動態地創建文檔,遍歷文檔結構,添加、修改、刪除文檔內容,改變文檔的顯示方式等等)。
  
  
  
  
  組成:
  ü DOM由三部分組成,包括:核心(core)、HTML和XML。
  
  ü 核心部分是結構化文檔比較底層對象的集合;
  
  ü HTML接口和XML接口兩部分則是專為操作具體的HTML文檔和XML文檔所提供的高級接口,使對這兩類文件的操作更加方便。
  
  版本:
  ü 1998年8月18日通過的DOM Level 1;
  
  ü 2000年3月7日 DOM Level 2;
  
  ü DOM Level 3。
  
  XML基本概念
  XML 聲明:<?xml version="1.0" encoding="UTF-8"?>
  
  DOCTYPE 聲明:<!DOCTYPE ORDERS SYSTEM "orders.dtd">
  
  數據本身:<orders><order><customerid limit="1000">12341</customerid></order> </orders>
  元素:
  
  屬性:
  
  文本:
  
  文檔:
  
  CData:<[CDATA[<b>Important: Please keep head and hands inside ride at <i>all times</i>.</b>]]>
  
  注釋:<!--This is a comment. -->
  
  處理指令:<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
  
  文檔片段:<item instock="Y" itemid="SA15">
  
   <name>Silver Show Saddle, 16 inch</name>
  
   <price>825.00</price>
  
   <qty>1</qty>
  
   </item>
  
   <item instock="N" itemid="C49">
  
   <name>Premium Cinch</name>
  
   <price>49.00</price>
  
   <qty>1</qty>
  
   </item>
  
  實體:
  
  實體引用節點:
  
  記號:
  
  名字空間:
  基本接口接口定義(java API package:org.w3c.dom):
  
  類繼續圖(箭頭指向的是父類,另一端為子類)
  
  
  1.Node接口
  
   Node接口在整個DOM樹中具有舉足輕重的地位,DOM接口中有很大一部分接口是從Node接口繼續過來的,例如,Element、Attr、CDATASection等接口,都是從Node繼續過來的。在DOM樹中,Node接口代表了樹中的一個節點。
  
  Field Summary
  
  static short
   ATTRIBUTE_NODE
   The node is an Attr.
  
  static short
   CDATA_SECTION_NODE
   The node is a CDATASection.
  
  static short
   COMMENT_NODE
   The node is a Comment.
  
  static short
   DOCUMENT_FRAGMENT_NODE
   The node is a DocumentFragment.
  
  static short
   DOCUMENT_NODE
   The node is a Document.
  
  static short
   DOCUMENT_TYPE_NODE
   The node is a DocumentType.
  
  static short
   ELEMENT_NODE
   The node is an Element.
  
  static short
   ENTITY_NODE
   The node is an Entity.
  
  static short
   ENTITY_REFERENCE_NODE
   The node is an EntityReference.
  
  static short
   NOTATION_NODE
   The node is a Notation.
  
  static short
   PROCESSING_INSTRUCTION_NODE
   The node is a ProcessingInstruction.
  
  static short
   TEXT_NODE
   The node is a Text node.
  
  
  
  
  Method Summary
  
   Node
   appendChild(Node newChild)
  將節點對象添加到本節點的子節點列表的末尾
  
   Node
   cloneNode(boolean deep)
  創建新的節點對象,他是本節點的克隆,假如deep=true,他將包含本節點的所有子孫節點。
  
   NamedNodeMap
   getAttributes()
  假如是節點,返回一個包含所有屬性的NamedNodeMap對象,否則為空。
  
   NodeList
   getChildNodes()
  返回包含所有子節點的NodeList對象
  
   Node
   getFirstChild()
  得到第一個子節點
  
   Node
   getLastChild()
  得到最後一個子節點
  
   java.lang.String
   getLocalName()
  返回本節點合法名字的本地部分
  
   java.lang.String
   getNamespaceURI()
  返回本節點命名空間的URI,未指明的話返回null
  
   Node
   getNextSibling()
  得到本節點的下一個兄弟節點
  
   java.lang.String
   getNodeName()
  得到本節點的名字
  
   short
   getNodeType()
  得到一個節點類型
  
   java.lang.String
   getNodeValue()
  得到一個節點值
  
   Document
   getOwnerDocument()
  返回本節點所屬的Document對象
  
   Node
   getParentNode()
  得到父節點
  
   java.lang.String
   getPrefix()
  返回本節點的命名空間前綴,假如未指定返回null
  
   Node
   getPreviousSibling()
  得到本節點的上一個兄弟節點
  
   boolean
   hasAttributes()
  返回是否有屬性
  
   boolean
   hasChildNodes()
  返回本節點是否有任何子節點
  
   Node
   insertBefore(Node newChild, Node refChild)
  在參考節點refChild前插入新節點newChild
  
   boolean
   isSupported(java.lang.String feature, java.lang.String version)
  測試version版本的DOM規范是否支持feature特性
  
   void
   normalize()
   Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes.
  
   Node
   removeChild(Node oldChild)
  從子節點列中刪除節點
  
   Node
   replaceChild(Node newChild, Node oldChild)
  替換oldChild節點為newChild
  
   void
   setNodeValue(java.lang.String nodeValue)
  
   void
   setPrefix(java.lang.String prefix)
  
  2.NodeList接口
  
   NodeList接口提供了對節點集合的抽象定義,它並不包含如何實現這個節點集的定義。NodeList用於表示有順序關系的一組節點,比如某個節點的子節點序列。另外,它還出現在一些方法的返回值中,例如GetNodeByName。
  
   在DOM中,NodeList的對象是"live"的,換句話說,對文檔的改變,會直接反映到相關的NodeList對象中。例如,假如通過DOM獲得一個NodeList對象,該對象中包含了某個Element節點的所有子節點的集合,那麼,當再通過DOM對Element節點進行操作(添加、刪除、改動節點中的子節點)時,這些改變將會自動地反映到NodeList對象中,而不需DOM應用程序再做其他額外的操作。
  
   NodeList中的每個item都可以通過一個索引來訪問,該索引值從0開始。
  
  Method Summary
  
   int
   getLength()
  列表中節點長度
  
   Node
   item(int index)
  返回第index個節點
  
  
   3.NamedNodeMap接口
  
   實現了NamedNodeMap接口的對象中包含了可以通過名字來訪問的一組節點的集合。不過注重,NamedNodeMap並不是從NodeList繼續過來的,它所包含的節點集中的節點是無序的。盡管這些節點也可以通過索引來進行訪問,但這只是提供了枚舉NamedNodeMap中所包含節點的一種簡單方法,並不表明在DOM規范中為NamedNodeMap中的節點規定了一種排列順序。
  
   NamedNodeMap表示的是一組節點和其唯一名字的一一對應關系,這個接口主要用在屬性節點的表示上。
   與NodeList相同,在DOM中,NamedNodeMap對象也是"live"的。
  
  Method Summary
  
   int
   getLength()
  得到映射中的節點個數
  
   Node
   getNamedItem(java.lang.String name)
  通過唯一名字得到一個節點
  
   Node
   getNamedItemNS(java.lang.String namespaceURI, java.lang.String localName)
  通過本地名和命名空間的URI得到唯一的節點
  
   Node
   item(int index)
  得到在影射中的第index個節點
  
   Node
   removeNamedItem(java.lang.String name)
  通過唯一名字刪除一個節點
  
   Node
   removeNamedItemNS(java.lang.String namespaceURI, java.lang.String localName)
  通過本地名和命名空間刪除唯一的節點
  
   Node
   setNamedItem(Node arg)
  用arg增加一個節點
  
   Node
   setNamedItemNS(Node arg)
  用命名空間的URI和當地名增加一個節點
  
  
   高級接口:
  Interface Summary
  
  Attr
   代表元素對象的屬性
  
  CDATASection
   DTD或模式中的CDATA項用於將不希望被解釋為標記的文本塊“轉義”。在DTD中,使用<!CDATA…>聲明
  
  CharacterData
   在DOM中,提供一套方法和屬性操作字符數據
  
  Comment
   代表注釋元素的內容
  
  Document
   Document接口描述了整個HTML或XML文檔
  
  DocumentFragment
   DocumentFragment是一個輕量對象,他可以創建新的文檔片斷,然後將整個片斷插入到一有的文檔中
  
  DocumentType
   包含文檔的類型聲明或模式信息
  
  DOMImplementation
   該對象答應訪問與應用程序相關且獨立於任何特定的文檔對象模型實例的方法
  
  Element
   代表HTML/XML文檔中的元素,常見元素有:Element、Attr、Text
  
  Entity
   代表在DTD中以元素<!ENTITY…>聲明的解析的或未解析的實體
  
  EntityReference
   代表XML文檔中的實體引用節點,假如XML處理器在構建結構模型時展開了實體引用,樹中可能不會出現實體引用對象。
  
  Notation
   代表在DTD或模式中以元素<!NOTATION…>聲明表示法
  
  ProcessingInstruction
   代表通過’<?’和’?>’嵌入XML的指令,它提供了在XML文檔中保存與處理器相關的信息的方法
  
  Text
   代表元素節點或屬性節點的文本內容
  
  
   重要的節點類型
   從NODE派生出的幾個比較重要的節點類型有Document Element, Attribute,Text:
  
   Document是DOM樹的根,它代表一個完整的XML文檔。它會有一些自己的子節點,至少應該有一個文檔元素的子節點,這個節點類型為Element,是XML文件最外層的根元素,此外他還可能有DocumentType(唯一),ProcessingInstruction,Comment這幾種作為子節點。
  
   Element代表XML元素,是最常用的節點,它可以組成以它為根的DOM的子樹。他還可以有Element子節點,以及Attribut,Text,ProcessingInstruction,CDATASection,Comment子節點。
  
   Attribute是XML元素的屬性,它的父節點必然是Element,它的子節點有Text和EntityReference;
  
   Text代表元素節點或屬性節點的文本內容。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved