XML文檔對象模型
1)DOMDocument對象:該對象描述全部的文檔映射表,文檔映射表包含了XML文檔裏的所有信息。
常用方法
常用屬性
2)IXMLDOMNode對象:該對象描述XML文檔裏的節點。這個節點可以是元素、屬性、處理指令、文本或者其他存儲在XML文檔裏的信息。
常用方法
常用屬性
3)IXMLDOMNodeList對象:該對象描述IXMLDOMNode對象的集合,並可使用該對象遍歷這個集合。IXMLDOMNodeList對象裏的節點集合可以用數值該問。
常用方法
常用屬性
4)IXMLDOMParseError對象:該對象用來驗證XML文檔對於Schema或DTD的正確性,並且取得在驗證過程中產生的錯誤信息。
常用方法
常用屬性
* DOMDocument對象常用方法:
a)createElement(elementName) ---- 該方法以元素名爲參數創建一個用此參數命名的元素節點。(不能創建名稱空間受限制的元素。如果要創建名稱空間受限制的元素,必須使用createNode()方法)
例: doc.createElement("PRODUCT")
b)createAttribute(attributeName) ---- 該方法以屬性名爲參數創建一個用此參數命名的屬性節點。
例: doc.createAttribute("PRODID")
c)createComment(text) ---- 該方法以字符串爲參數創建一個包含此字符串的註釋節點。
例: doc.createComment("This is an XML document")
d)createTextNode(text) ---- 該方法以字符串爲參數創建一個包含指定字符串的正文節點。
例: doc.createTextNode("Sony Workman")
e)createNode(type,name,namespace-URI) ---- 該方法創建元素節點。三個參數,"類型"參數是variant型,既可以是字符串也可以是整型。第二個參數是字符串,它代表將要創建的節點的名字。第三個參數是代表namespace-URI的字符串。如果namespace-URI爲空字符串,則新創建的節點就沒有名稱空間URI
例: doc.createNode("element","PRODUCT","")
doc.createNode("element","prod: PRODUCT","blog.csdn.net/fcrpg2005")
doc.createNode(1,"PRODUCT","")
f)getElementsByTagName(elementName) ---- 該方法以字符串爲參數。這個字符串是要搜索的元素。返回IXMLDOMNodeList對象,包含指定元素名稱的節點的集合。可以用這些節點信來瀏覽操縱存儲在指定元素中的值。
例: doc.getEelmentsByTagName("PRICE")
g)load(XMLdocument) ---- 該方法以字符串爲參數。這個字符串是XML文檔的地址(HTTP地址或本地地址)
例: doc.load("http://blog.csdn.net/fcrpg2005/product.xml")
doc.load("D:/product.xml")
h)loadXML(string) ---- 該方法把成形的XML代碼或整個XML文檔載入DOMDocument對象中。
例: doc.loadXML("<?xml version=1.0><PRODUCTS><PRODUCT><name>Barbie Doll</name></PRODUCT></PRODUCTS>")
i)transformNode(stylesheet object) ---- 該方法以風格表對象爲參數。通過把相應的風格表加到XML文檔上來處理節點,然後返回轉換結果。
例: doc.transformNode("product.xsl")
j)appendChild(child node) ---- 該方法以對象爲參數。把這個對象作爲最後的子節點加在XML文檔上。createNode() 或者 createElement()方法可以創建節點或元素。但是它們不會把新建的節點加到文檔樹形結構上。而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的節點加上去。
例: doc.appendChild(root) ---- PS: root是一個用createNode()或createElement()方法創建的節點
k)save(destination) ---- 該方法以對象爲參數。這個對象可以是一個DOMDocument對象也可以是一個文件名。save()方法把DOMDocument對象保存在指定的目的地。
例: doc.save("http://blog.csdn.net/fcrpg2005/product.xml")
* DOMDocument對象常用屬性:
a)async ---- 該屬性用來指定是否允許異步加載。屬性async取布爾值。
例: doc.async = false --同步
b)childNodes ---- 該屬性返回屬於一個父節點的子節點集合(即返回當前元素所有子元素的數組對象)。該屬性的值是對象IXMLDOMNodeList的類型。
例: var firstelem = doc.childNodes.item(1)
c)documentElement ---- 該屬性包含用對象DOMDocument表示的XML文檔的根元素。
例: var root = doc.documentElement
d)firstChild ---- 該屬性返回父元素的第一個子節點。該元素是隻讀的。
例: var firstelem = doc.firstChild
e)lastChild ---- 該屬性返回父元素的最後一個子節點。
例: var lastelem = doc.lastChild
f)parseError ---- 該屬性返回一個包含大部分最近產生的錯誤信息的對象。
例: var error = doc.parseError
g)readyState ---- 該屬性返回XML文檔的狀態。它顯示這個文檔是否已完全載入。4個狀態:0-未初始化、1-正在加載、2-已加載、3-交互中、4-已完成
例: var stateInfo = doc.readState
if(stateInfo == 4) { // Document loading
// Coding
}
h)xml ---- 該屬性返回一個節點以有其子節點的XML表示。
例: document.write(doc.xml)
i)validateOnParse ---- 該屬性指定解析器是否在解析XML文檔時驗證其合法性。
例: doc.validateOnParse = true
** IXMLDOMNode對象常用方法:
a)appendChild(newChild) ---- 該方法把節點newChild加到該方法使用的節點的子節點的末尾。
b)insertBefore(newNode, refNode) ---- 該方法把一個新節點newNode插到一個已存在節點refNode之前。
c)removeChild(nodeName) ---- 該方法刪除指定的節點。
d)replaceChild(newNode, oldNode) ---- 該方法用新節點newNode替換舊節點oldNode。
e)hasChildNodes() ---- 如果IXMLDOMNode對象有子節點,該方法返回值爲真(true)。
f)cloneNode(Boolean) ---- 如果參數Boolean爲真,該方法返回IXMLDOMNode對象一個完全克隆。該克隆節點包含和原節點一樣的子節點。
** IXMLDOMNode對象常用屬性:
a)nodeName ---- 返回節點名稱。
b)nodeType ---- 返回節點類型。
c)nodeValue ---- 返回節點包含的文本。
d)childNodes ---- 返回用IXMLDOMNode對象表示的節點的子節點集。
e)firstChild ---- 返回該節點的第一個子節點。
f)lastChild ---- 返回該節點的最後一個子節點。
g)text ---- 返回IXMLDOMNode在IXMLDOMNode對象中的文本。
h)xml ---- 返回IXMLDOMNode對象的XML代碼
*** IXMLDOMNodeList對象常用方法:
a)item(number) ---- 該方法返回指定數值對應位置的節點。
b)nextNode() ---- 該方法返回節點集的下一個節點。
*** IXMLDOMNodeList對象常用屬性:
length ---- 獲得節點集中節點的個數。
**** IXMLDOMParseError對象常用屬性:
a)errorCode ---- 該屬性包含類型爲長整型的錯誤代碼。如果XML文檔沒有錯誤,該屬性返回0。
b)reason ---- 該屬性包含解釋錯誤原因的字符串。
c)line ---- 該屬性存儲代表錯誤行數的長整型。
d)linePos ---- 該屬性存儲代表錯誤行位置的長整型。
e)srcText ---- 該屬性包含引起錯誤的那一行字符串。