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