XML節(jié)點(diǎn)學(xué)習(xí)總結(jié)
在我們學(xué)習(xí)LINQ刪除XML節(jié)點(diǎn)之前我們先來看看什么是XML節(jié)點(diǎn),那么下面就向你詳細(xì)介紹下關(guān)于XML節(jié)點(diǎn)的學(xué)習(xí)體會(huì)。希望對(duì)你了解和學(xué)習(xí)XML節(jié)點(diǎn)有所幫助。
對(duì)于XML節(jié)點(diǎn)的認(rèn)識(shí):
就像一個(gè)樹狀的目錄??梢园?**行當(dāng)作它扎根的“土地”。XML文件是由節(jié)點(diǎn)構(gòu)成的。它的***個(gè)節(jié)點(diǎn)為“根節(jié)點(diǎn)”。一個(gè)XML文件必須有且只能有一個(gè)根節(jié)點(diǎn),其他節(jié)點(diǎn)都必須是它的子節(jié)點(diǎn)。我們?cè)贔LASH里使用XML對(duì)象解析XML的時(shí)候,this 代表整個(gè)XML文件,它的根節(jié)點(diǎn)就是 this.firstChild 。 this.firstChild.childNodes 則返回由根節(jié)點(diǎn)的所有子節(jié)點(diǎn)組成的節(jié)點(diǎn)數(shù)組。
每個(gè)子節(jié)點(diǎn)又可以有自己的子節(jié)點(diǎn)。節(jié)點(diǎn)編號(hào)由0開始,根節(jié)點(diǎn)的***個(gè)子節(jié)點(diǎn)為 this.firstChild.childNodes[0],它的子節(jié)點(diǎn)數(shù)組就是this.firstChild.childNodes[0].childNodes 。
對(duì)于XML節(jié)點(diǎn)的探究:
繼續(xù)深入到?jīng)]有子節(jié)點(diǎn)的單一節(jié)點(diǎn),比如根節(jié)點(diǎn)***個(gè)子節(jié)點(diǎn)的第二個(gè)子節(jié)點(diǎn) this.firstChild.childNodes[0].childNodes[1],它返回的是一個(gè)XML對(duì)象(Object) 。這里需要特別注意,節(jié)點(diǎn)標(biāo)簽之間的數(shù)據(jù)本身也視為一個(gè)節(jié)點(diǎn) this.firstChild.childNodes[0].childNodes[1].firstChild ,而不是一個(gè)值。
我們解析XML的最終目的當(dāng)然就是獲得數(shù)據(jù)的值:this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue 。注意!不是 this.firstChild.childNodes[0].childNodes[1].nodeValue !節(jié)點(diǎn)名稱有時(shí)也是我們需要的數(shù)據(jù): this.firstChild.childNodes[0].childNodes[1].nodeName 。注意比較獲得節(jié)點(diǎn)名稱和節(jié)點(diǎn)值的不同。
除了作為子節(jié)點(diǎn),數(shù)據(jù)還可以作為節(jié)點(diǎn)屬性。節(jié)點(diǎn)屬性寫在節(jié)點(diǎn)標(biāo)簽內(nèi)部:<節(jié)點(diǎn) 屬性1="屬性值" 屬性2="屬性值"...... >節(jié)點(diǎn)值 。如果數(shù)據(jù)全作為屬性而沒有節(jié)點(diǎn)值,則可以寫成 <節(jié)點(diǎn) 屬性="屬性值" /> 的形式,而不用寫成 <節(jié)點(diǎn) 屬性="屬性值"> 。 注意節(jié)點(diǎn)必須關(guān)閉,寫成 <節(jié)點(diǎn) 屬性="屬性值"> 就不對(duì)了。
節(jié)點(diǎn)的所有屬性返回一個(gè)通用對(duì)象(Object),比如根節(jié)點(diǎn)第六個(gè)子節(jié)點(diǎn)的第三個(gè)子節(jié)點(diǎn)的所有屬性為: this.firstChild.childNodes[5].childNodes[2].attributes 。 獲得其中的“地址”屬性: this.firstChild.childNodes[5].childNodes[2].attributes.地址 。
比較而言,數(shù)據(jù)作為屬性的方式更好。因?yàn)槲募鄬?duì)比較小,而且避免深入更多層子節(jié)點(diǎn),解析速度更快。
下面以簡歷的 JobXMLModel類 (模型)看看在flash里具體的解析。 JobXMLModel類 繼承XML類,首先在構(gòu)造函數(shù)里設(shè)置 ignoreWhite 屬性為true忽略XML文件中多余的空格。
對(duì)于XML節(jié)點(diǎn)的學(xué)習(xí)體會(huì)就和你分享到這里,那么希望以上的講解對(duì)你了解和掌握XML節(jié)點(diǎn)有所幫助。
【編輯推薦】