XML 取得元素的字符數(shù)據(jù)
列表9-3 中的script 程序使用每個(gè)子元素(TITLE、AUTHOR、BINDING、PAGES 與PRICE)的text 屬性,來(lái)作為取得元素字符數(shù)據(jù)的快捷方法。例如,下列的程序代碼被用來(lái)擷取TITLE元素中的字符數(shù)據(jù):
title.innerText=Document.documentElement.childNodes(0).text;
text 屬性不僅提供了目前節(jié)點(diǎn)所代表的元素其文字內(nèi)容,也提供任何后續(xù)元素的文字內(nèi)容。當(dāng)元素沒(méi)有任何子元素時(shí),該屬性可以正確地?cái)X取元素中的文字內(nèi)容(如元素TITLE)。然而,如果元素包含一個(gè)以上的子元素與字符數(shù)據(jù),則text 屬性將傳回所有的文字,如同下面范例所示(在這個(gè)范例中是「Moby-Dick Or,the Whale」)。
<TITLE>Moby-Dick
<SUBTITLE>Or,the Whale</SUBTITLE>
</TITLE>
為了只取得TITLE 元素的字符數(shù)據(jù),你必須存取TITLE 元素的子文字節(jié)點(diǎn)。
表格9-1 中,Element 節(jié)點(diǎn)的nodeValue 屬性的值是null。如果元素包含了字符數(shù)據(jù),則文字將被儲(chǔ)存于子Text 節(jié)點(diǎn),而你可以從此Text 節(jié)點(diǎn)的nodeValue 屬性來(lái)存取字符數(shù)據(jù)。例如,如同前面范例所示,如果TITLE 元素的Element 節(jié)點(diǎn)包含文字「Moby-Dick」,則下面的程序代碼將提供TITLE 的字符數(shù)據(jù)「Moby-Dick」,而不含屬于SUBTITLE 的字符數(shù)據(jù):
Element.firstChild.nodeValue
(因?yàn)門(mén)ITLE 元素的字符數(shù)據(jù)位置在其子元素的前面,所以由第一個(gè)子節(jié)點(diǎn)來(lái)表示字符數(shù)據(jù),因此你可以使用firstChild 屬性來(lái)擷取字符數(shù)據(jù)。)如果元素的字符數(shù)據(jù)與子元素、批注,或處理指令散置在一起,則每個(gè)個(gè)別的字符數(shù)據(jù)區(qū)塊將表示成為元素所屬的子Text 節(jié)點(diǎn)。例如,在下面范例中,ITEM 元素?fù)碛腥齻€(gè)子節(jié)點(diǎn),其順序?yàn)椋篢ext 節(jié)點(diǎn)表示第一個(gè)字符數(shù)據(jù)區(qū)塊,Element 節(jié)點(diǎn)表示子元素SUB-ITEM,而另一個(gè)Text 節(jié)點(diǎn)則代表第二個(gè)字符數(shù)據(jù)區(qū)塊:
<ITEM>
character data block 1
<SUB-ITEM>sub-item text</SUB-ITEM>
character data block 2
</ITEM>
表格9-5 分別列出Text 節(jié)點(diǎn)所提供的有用屬性和方式:
char-offset 為子字符串的起始位置,和num-chars 為子字符串的長(zhǎng)度 SubString =Text.substringData(2,3); (從Text 元素的內(nèi)容傳回第二、三、四等三個(gè)字符) 表格9-5 文字節(jié)點(diǎn)分別提供一個(gè)有用的屬性和方法,可使用的屬性也包括了表格9-2 中所列的共同節(jié)點(diǎn)屬性。
相關(guān)文章:
1. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理2. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法3. python對(duì)XML文件的操作實(shí)現(xiàn)代碼4. XML入門(mén)的常見(jiàn)問(wèn)題(一)5. .NET 中配置從xml轉(zhuǎn)向json方法示例詳解6. XML相關(guān)技術(shù)資料7. Ajax對(duì)xml信息的接收和處理操作實(shí)例分析8. HTML中的XML數(shù)據(jù)島記錄編輯與添加9. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題10. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?
