XML文件物件模型

來源:互聯網
上載者:User

 

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 ---- 該屬性包含引起錯誤的那一行字串。 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.