Object 內置對象

對象XmlDocument

XmlDocument 對象代表整個XML 文檔

XmlDocument 對像是一棵文檔樹的根,可為我們提供對文檔數據的最初(或最頂層)的訪問入口。用於元素節點、文本節點、註釋、處理指令等均無法存在於XmlDocument 之外, XmlDocument 對象同樣提供了創建這些對象的方法。XmlNode 對象提供了一個ownerDocument 屬性,此屬性可把它們與在其中創建它們的XmlDocument 關聯起來。

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>XmlNode|nodeType;nodeName;nodeValue;ownerDocument;parentNode;childNodes;firstChild;lastChild;previousSibling;nextSibling|hasChildNodes();normalize();cloneNode();lookupPrefix();lookupNamespaceURI();insertBefore();insertAfter();appendChild();replaceChild();removeChild()] [<this>XmlDocument|new XmlDocument()|inputEncoding;xmlStandalone;xmlVersion;doctype;documentElement;head;title;body|load();getElementsByTagName();getElementsByTagNameNS();getElementById();getElementsByClassName();createElement();createElementNS();createTextNode();createComment();createCDATASection();createProcessingInstruction()] [object] <:- [XmlNode] [XmlNode] <:- [XmlDocument] XmlDocument new XmlDocument() inputEncoding xmlStandalone xmlVersion doctype documentElement head title body load() getElementsByTagName() getElementsByTagNameNS() getElementById() getElementsByClassName() createElement() createElementNS() createTextNode() createComment() createCDATASection() createProcessingInstruction() XmlNode nodeType nodeName nodeValue ownerDocument parentNode childNodes firstChild lastChild previousSibling nextSibling hasChildNodes() normalize() cloneNode() lookupPrefix() lookupNamespaceURI() insertBefore() insertAfter() appendChild() replaceChild() removeChild() object toString() toJSON()

構造函數

XmlDocument

構造一個XmlDocument 對象

1
new XmlDocument(String type = "text/xml");

調用參數:

  • type: String, 指定文檔對象的類型,缺省為"text/xml",若需要處理html 則需要指定"text/html"

成員屬性

inputEncoding

String, 返回用於文檔的編碼(在解析時)

1
readonly String XmlDocument.inputEncoding;

xmlStandalone

Boolean, 設置或返回文檔是否為standalone

1
Boolean XmlDocument.xmlStandalone;

xmlVersion

String, 設置或返回文檔的XML 版本

1
String XmlDocument.xmlVersion;

doctype

XmlDocumentType, 返回與文檔相關的文檔類型聲明(Document Type Declaration)

1
readonly XmlDocumentType XmlDocument.doctype;

對於沒有DTD 的XML 文檔,則返回null。此屬性可提供對XmlDocumentType 對象( XmlDocument 的一個子節點)的直接訪問。


documentElement

XmlElement, 返回文檔的根節點

1
readonly XmlElement XmlDocument.documentElement;

XmlElement, 返回HTML 文檔的head 節點,僅在html 模式有效

1
readonly XmlElement XmlDocument.head;

title

String, 返回HTML 文檔的title 節點的內容,僅在html 模式有效

1
readonly String XmlDocument.title;

body

XmlElement, 返回HTML 文檔的body 節點,僅在html 模式有效

1
readonly XmlElement XmlDocument.body;

nodeType

Integer, 返回節點的節點類型

1
readonly Integer XmlDocument.nodeType;

不同對象的nodeType 會返回不同的值:


nodeName

String, 返回節點的名稱,根據其類型

1
readonly String XmlDocument.nodeName;

不同對象的nodeName 會返回不同的值:


nodeValue

String, 返回節點的名稱,根據其類型

1
String XmlDocument.nodeValue;

不同對象的nodeName 會返回不同的值:


ownerDocument

XmlDocument, 返回節點的根元素(XmlDocument 對象)

1
readonly XmlDocument XmlDocument.ownerDocument;

parentNode

XmlNode, 可返回某節點的父節點

1
readonly XmlNode XmlDocument.parentNode;

childNodes

XmlNodeList, 返回指定節點的子節點的節點列表

1
readonly XmlNodeList XmlDocument.childNodes;

firstChild

XmlNode, 返回節點的首個子節點

1
readonly XmlNode XmlDocument.firstChild;

lastChild

XmlNode, 返回節點的最後一個子節點

1
readonly XmlNode XmlDocument.lastChild;

previousSibling

XmlNode, 返回某節點之前緊跟的節點(處於同一樹層級),如果沒有此節點,那麼該屬性返回null

1
readonly XmlNode XmlDocument.previousSibling;

nextSibling

XmlNode, 返回某個元素之後緊跟的節點(處於同一樹層級中),如果無此節點,則屬性返回null

1
readonly XmlNode XmlDocument.nextSibling;

成員函數

load

通過解析一個XML/HTML 字符串來組成該文檔,不支持多語種

1
XmlDocument.load(String source);

調用參數:

  • source: String, 要解析的XML/HTML 文本,取決於文檔創建時的類型

通過解析一個二進制XML/HTML 字符串來組成該文檔,並根據語種自動轉換

1
XmlDocument.load(Buffer source);

調用參數:

  • source: Buffer, 要解析的XML/HTML 文本,取決於文檔創建時的類型

getElementsByTagName

返回帶有指定名稱的所有元素的一個節點列表

1
XmlNodeList XmlDocument.getElementsByTagName(String tagName);

調用參數:

  • tagName: String, 需檢索的標籤名。值"*" 匹配所有的標籤

返回結果:

  • XmlNodeList, 文檔樹中具有指定標記的 XmlElement 節點的 XmlNodeList集合。返回的元素節點的順序就是它們在源文檔中出現的順序。

該方法將返回一個 XmlNodeList 對象(可以作為只讀數組處理),該對象存放文檔中具有指定標籤名的所有 XmlElement 節點,它們存放的順序就是在源文檔中出現的順序。 XmlNodeList 對像是“活”的,即如果在文檔中添加或刪除了指定標籤名的元素,它的內容會自動進行必要的更新。


getElementsByTagNameNS

返回帶有指定命名空間和名稱的所有元素的一個節點列表

1 2
XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI, String localName);

調用參數:

  • namespaceURI: String, 指定檢索的命名空間URI。值"*" 可匹配所有的標籤
  • localName: String, 需檢索的標籤名。值"*" 匹配所有的標籤

返回結果:

  • XmlNodeList, 文檔樹中具有指定標記的 XmlElement 節點的 XmlNodeList集合。返回的元素節點的順序就是它們在源文檔中出現的順序。

該方法與getElementsByTagName() 方法相似,只是它根據命名空間和名稱來檢索元素。


getElementById

返回擁有指定id 屬性的元素

1
XmlElement XmlDocument.getElementById(String id);

調用參數:

  • id: String, 需檢索的id

返回結果:

該方法將遍歷文檔的子孫節點,返回一個 XmlElement節點對象,表示第一個具有指定id 屬性的文檔元素。


getElementsByClassName

返回帶有指定class 名稱的所有元素的一個節點列表

1
XmlNodeList XmlDocument.getElementsByClassName(String className);

調用參數:

  • className: String, 需檢索的class 名稱

返回結果:

  • XmlNodeList, 文檔樹中具有指定class 名的 XmlElement 節點的 XmlNodeList集合。返回的元素節點的順序就是它們在源文檔中出現的順序。

該方法將返回一個 XmlNodeList 對象(可以作為只讀數組處理),該對象存放文檔中具有指定class 名的所有 XmlElement 節點,它們存放的順序就是在源文檔中出現的順序。 XmlNodeList 對像是“活”的,即如果在文檔中添加或刪除了指定標籤名的元素,它的內容會自動進行必要的更新。


createElement

創建元素節點

1
XmlElement XmlDocument.createElement(String tagName);

調用參數:

  • tagName: String, 指定元素節點規定名稱

返回結果:


createElementNS

創建帶有指定命名空間的元素節點

1 2
XmlElement XmlDocument.createElementNS(String namespaceURI, String qualifiedName);

調用參數:

  • namespaceURI: String, 指定元素節點命名空間URI
  • qualifiedName: String, 指定元素節點規定名稱

返回結果:


createTextNode

創建文本節點

1
XmlText XmlDocument.createTextNode(String data);

調用參數:

  • data: String, 指定此節點的文本

返回結果:

  • XmlText, 返回新創建的 XmlText 節點,表示指定的data 字符串

createComment

創建註釋節點

1
XmlComment XmlDocument.createComment(String data);

調用參數:

  • data: String, 指定此節點的註釋文本

返回結果:


createCDATASection

創建 XmlCDATASection 節點

1
XmlCDATASection XmlDocument.createCDATASection(String data);

調用參數:

  • data: String, 指定此節點規定CDATA 數據

返回結果:


createProcessingInstruction

創建 XmlProcessingInstruction 節點

1 2
XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target, String data);

調用參數:

  • target: String, 指定處理指令的目標
  • data: String, 指定處理指令的內容文本

返回結果:


hasChildNodes

查詢是否存在子節點

1
Boolean XmlDocument.hasChildNodes();

返回結果:

  • Boolean, 存在任何子節點時返回true,否則返回false

normalize

合併相鄰的Text 節點並刪除空的Text 節點

1
XmlDocument.normalize();

這個方法將遍歷當前節點的所有子孫節點,通過刪除空的Text 節點,已經合併所有相鄰的Text 節點來規範化文檔。該方法在進行節點的插入或刪除操作後,對於簡化文檔樹的結構很有用。


cloneNode

創建指定的節點的精確拷貝

1
XmlNode XmlDocument.cloneNode(Boolean deep = true);

調用參數:

  • deep: Boolean, 是否深度拷貝,為true 時,被克隆的節點會克隆原節點的所有子節點

返回結果:

  • XmlNode, 返回所複製的節點

該方法將復制並返回調用它的節點的副本。如果傳遞給它的參數是true,它還將遞歸複製當前節點的所有子孫節點。否則,它只複製當前節點。返回的節點不屬於文檔樹,它的parentNode 屬性為null。當複制的是Element 節點時,它的所有屬性都將被複製。


lookupPrefix

返回在當前節點上匹配指定的命名空間URI 的前綴

1
String XmlDocument.lookupPrefix(String namespaceURI);

調用參數:

  • namespaceURI: String, 指定匹配的命名空間URI

返回結果:

  • String, 返回匹配的前綴,未匹配到返回null

lookupNamespaceURI

返回在當前節點上匹配指定的前綴的命名空間URI

1
String XmlDocument.lookupNamespaceURI(String prefix);

調用參數:

  • prefix: String, 指定匹配的前綴

返回結果:

  • String, 返回匹配的命名空間URI,未匹配到返回null

insertBefore

在已有的子節點前插入一個新的子節點

1 2
XmlNode XmlDocument.insertBefore(XmlNode newChild, XmlNode refChild);

調用參數:

  • newChild: XmlNode, 插入新的節點
  • refChild: XmlNode, 在此節點前插入新節點

返回結果:

如果文檔樹中已經存在了newChild,它將從文檔樹中刪除,然後重新插入它的新位置。來自一個文檔的節點(或由一個文檔創建的節點)不能插入另一個文檔。也就是說,newChild 的ownerDocument 屬性必須與當前節點的ownerDocument 屬性相同。


insertAfter

在已有的子節點後插入一個新的子節點

1 2
XmlNode XmlDocument.insertAfter(XmlNode newChild, XmlNode refChild);

調用參數:

  • newChild: XmlNode, 插入新的節點
  • refChild: XmlNode, 在此節點後插入新節點

返回結果:

如果文檔樹中已經存在了newChild,它將從文檔樹中刪除,然後重新插入它的新位置。來自一個文檔的節點(或由一個文檔創建的節點)不能插入另一個文檔。也就是說,newChild 的ownerDocument 屬性必須與當前節點的ownerDocument 屬性相同。


appendChild

向節點的子節點列表的末尾添加新的子節點

1
XmlNode XmlDocument.appendChild(XmlNode newChild);

調用參數:

  • newChild: XmlNode, 指定添加的節點

返回結果:

  • XmlNode, 返回這個新的子節點

如果文檔樹中已經存在了newChild,它將從文檔樹中刪除,然後重新插入它的新位置。來自一個文檔的節點(或由一個文檔創建的節點)不能插入另一個文檔。也就是說,newChild 的ownerDocument 屬性必須與當前節點的ownerDocument 屬性相同。


replaceChild

將某個子節點替換為另一個

1 2
XmlNode XmlDocument.replaceChild(XmlNode newChild, XmlNode oldChild);

調用參數:

  • newChild: XmlNode, 指定新的節點
  • oldChild: XmlNode, 指定被替換的節點

返回結果:

  • XmlNode, 如替換成功,此方法可返回被替換的節點,如替換失敗,則返回null

如果文檔樹中已經存在了newChild,它將從文檔樹中刪除,然後重新插入它的新位置。來自一個文檔的節點(或由一個文檔創建的節點)不能插入另一個文檔。也就是說,newChild 的ownerDocument 屬性必須與當前節點的ownerDocument 屬性相同。


removeChild

從子節點列表中刪除某個節點

1
XmlNode XmlDocument.removeChild(XmlNode oldChild);

調用參數:

  • oldChild: XmlNode, 指定被刪除的節點

返回結果:

  • XmlNode, 如刪除成功,此方法可返回被刪除的節點,如失敗,則返回null

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String XmlDocument.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value XmlDocument.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值