国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

高程3總結(jié)#第19章E4X

DandJ / 2458人閱讀

摘要:在不給這個(gè)方法傳遞參數(shù)的情況下,它會(huì)返回所有后代節(jié)點(diǎn)與使用相同,而傳遞一個(gè)名稱作為參數(shù)則可以限制結(jié)果。,表示解析器應(yīng)該忽略標(biāo)記中的處理指令。數(shù)據(jù)序列化相關(guān)的設(shè)置,表示在序列化時(shí),每次縮進(jìn)的空格數(shù)量。

E4X E4X的類型

E4X定義了幾個(gè)新的全局類型

XML,XML結(jié)構(gòu)中的任何一個(gè)獨(dú)立的部分

XMLList,XML對(duì)象的集合

Namespace,命名空間前綴與命名空間URI之間的映射

QName,由內(nèi)部名稱和命名空間URI組成的一個(gè)限定名

XMl類型

創(chuàng)建XML對(duì)象的方式不止一種,第一種方式是像下面這樣調(diào)用其構(gòu)造函數(shù)

var x=new XML();

這行代碼會(huì)創(chuàng)建一個(gè)空的XML對(duì)象,我們能夠向其中添加數(shù)據(jù),也可以向構(gòu)造函數(shù)中傳入一個(gè)XML字符串

var x = new XML("Nicholas " + "Zakas");

使用XML字面量將XML數(shù)據(jù)直接指定給一個(gè)變量,XML字面量就是嵌入到JavaScript代碼中的XML代碼

var employee = Nicholas C. Zakas;

XMLList類型

XMLList類型表現(xiàn)XML對(duì)象的有序集合,XMLList的DOM對(duì)等類型是NodeList,但與Node和NodeList之間的區(qū)別相比,XML和XMLList之間的區(qū)別是有意設(shè)計(jì)的比較小的

var list=new XMLList();

與XML構(gòu)造函數(shù)一樣,也可以向其中傳入一個(gè)待解析的XML字符串,這個(gè)字符串可以不止包含一個(gè)文檔元素

var list=new XMLList("");

還可以使用加號(hào)操作符來組合兩個(gè)或多個(gè)XML對(duì)象,從而創(chuàng)建XMLList對(duì)象

var list=+;

同樣的組合操作也可以使用特殊的<>和語法來完成,此時(shí)不適用加號(hào)操作符

var list=<>

Namespace類型

要?jiǎng)?chuàng)建Namespace對(duì)象,可以像下面這樣使用Namespace構(gòu)造函數(shù)

var ns=new Namespace();

而傳入U(xiǎn)RI或前綴加URI,就可以初始化Namespace對(duì)象

var ns = new Namespace("http://www.wrox.com/"); //沒有前綴的命名空間
var wrox = new Namespace("wrox", "http://www.wrox.com/"); //wrox 命名空間

可以使用prefix和uri屬性類取得Namespace對(duì)象中的信息

alert(ns.uri); //"http://www.wrox.com/"
alert(ns.prefix); //undefined
alert(wrox.uri); //"http://www.wrox.com/"
alert(wrox.prefix); //"wrox"

QName類型

向QName構(gòu)造函數(shù)中傳入名稱或Namespace對(duì)象和名稱,可以手工創(chuàng)建新的QName對(duì)象

var wrox = new Namespace("wrox", "http://www.wrox.com/");
var wroxMessage = new QName(wrox, "message"); //表示"wrox:message"

創(chuàng)建QName對(duì)象之后,可以訪問它的兩個(gè)屬性,uri和localName,其中uri屬性返回在創(chuàng)建對(duì)象時(shí)指定的命名空間URI,而localName屬性返回限定名中的內(nèi)部名稱

alert(wroxMessage.uri); //"http://www.wrox.com/"
alert(wroxMessage.localName); //"message"

一般用法 訪問特性

訪問特性可以使用點(diǎn)語法,為了區(qū)分特性名與子元素的標(biāo)簽名,必須在名稱前面加上一個(gè)@字符

var employees = 
    
      Nicholas C. Zakas


  Jim Smith

;
alert(employees.employee[0].@position); //"Software Engineer"

其他節(jié)點(diǎn)類型

默認(rèn)情況下,E4X不會(huì)解析注釋或處理指令,因此這些部分不會(huì)出現(xiàn)在最終的對(duì)象層次中,如果想讓解析器解析這些部分,可以設(shè)置XML構(gòu)造函數(shù)的兩個(gè)屬性

XML.ignoreComments = false;
XML.ignoreProcessingInstructions = false;

設(shè)置了兩個(gè)屬性之后,E4X就會(huì)將注釋和處理指令解析到XML結(jié)構(gòu)中

使用nodeKind()方法可以得到XML對(duì)象表示的類型,該訪問可能會(huì)返回"text"、"element"、"comment"、"processinginstruction"、"attribute"

只取得特定類型的節(jié)點(diǎn)

attribute(),返回XML對(duì)象的所有特性

comments(),返回XML對(duì)象的所有子注釋節(jié)點(diǎn)

elements(),返回XML對(duì)象的所有子元素,可以通過提供元素的tagName來過濾想要的返回的結(jié)果

processingInstructions(),返回XML對(duì)象的所有處理指令,可以通過提供處理指令的name來過濾想要的返回的結(jié)果

text(),返回XML對(duì)象的所有文本子節(jié)點(diǎn)

使用 hasSimpleContent() 和 hasComplexContent() 方法,可以確定 XML 對(duì)象中是只包含文本,還是包含更復(fù)雜的內(nèi)容。如果 XML 對(duì)象中只包含子文本節(jié)點(diǎn),則前一個(gè)方法會(huì)返回 true ;如果 XML 對(duì)象的子節(jié)點(diǎn)中有任何非文本節(jié)點(diǎn),則后一個(gè)方法返回 true 。

alert(employees.employee[0].hasComplexContent()); //true
alert(employees.employee[0].hasSimpleContent()); //false
alert(employees.employee[0].name.hasComplexContent()); //false
alert(employees.employee[0].name.hasSimpleContent()); //true

查詢

同樣的查詢可以使用 descendants() 方法來完成。在不給這個(gè)方法傳遞參數(shù)的情況下,它會(huì)返回所有后代節(jié)點(diǎn)(與使用 ..* 相同),而傳遞一個(gè)名稱作為參數(shù)則可以限制結(jié)果。

var allDescendants = employees.descendants(); //所有后代節(jié)點(diǎn)
var allNames = employees.descendants("name"); //后代中的所有元素

還可以取得所有后代元素中的所有特性,方法是使用下列任何一行代碼。

var allAttributes = employees..@*; //取得所有后代元素中的所有特性
var allAttributes2 = employees.descendants("@*"); //同上

與限制結(jié)果中的后代元素一樣,也可以通過用完整的特性名來替換星號(hào)達(dá)到過濾特性的目的。

var allAttributes = employees..@position; //取得所有 position 特性
var allAttributes2 = employees.descendants("@position"); //同上

構(gòu)建和操作XML

使用花括號(hào),可以將JavaScript變量嵌入到字面量中的任意位置

var tagName = "color";
var color = "red";
var xml = <{tagName}>{color};
alert(xml.toXMLString()); //"red

類似DOM的方法

appendChild(child),將給定的 child 作為子節(jié)點(diǎn)添加到 XMLList 的末尾。

copy(),返回 XML 對(duì)象副本。

insertChildAfter(refNode, child),將 child 作為子節(jié)點(diǎn)插入到 XMLList 中 refNode 的后面。

insertChildBefore(refNode, child),將 child 作為子節(jié)點(diǎn)插入到 XMLList 中 refNode 的前面。

prependChild(child),將給定的 child 作為子節(jié)點(diǎn)添加到 XMLList 的開始位置。

replace(propertyName, value),用 value 值替換名為 propertyName 的屬性,這個(gè)屬性可能是一個(gè)元素,也可能是一個(gè)特性。

setChildren(children),用 children 替換當(dāng)前所有的子元素, children 可以是 XML 對(duì)象,也可是 XMLList 對(duì)象。

var employees = 
    
      Nicholas C. Zakas


  Jim Smith

;
employees.appendChild(
                      Benjamin Anderson
                      );
                      employees.prependChild(
                      Michael Johnson
                      );
                      employees.insertChildBefore(employees.child(2),
  
    Margaret Jones
);
employees.setChildren(
                      Richard McMichael
                       +
                      
                      Rebecca Smith
                      );

解析和序列化

與XML解析相關(guān)的設(shè)置有三個(gè)

ignoreComments,表示解析器應(yīng)該忽略標(biāo)記中的注釋。默認(rèn)設(shè)置為 true 。

ignoreProcessingInstructions,表示解析器應(yīng)該忽略標(biāo)記中的處理指令。默認(rèn)設(shè)置為 true 。

ignoreWhitespace ,表示解析器應(yīng)該忽略元素間的空格,而不是創(chuàng)建表現(xiàn)這些空格的文本節(jié)點(diǎn)。默認(rèn)設(shè)置為 true 。

XML數(shù)據(jù)序列化相關(guān)的設(shè)置

prettyIndent ,表示在序列化 XML 時(shí),每次縮進(jìn)的空格數(shù)量。默認(rèn)值為 2。

prettyPrinting,表示應(yīng)該以方便人類認(rèn)讀的方式輸出 XML,即每個(gè)元素重起一行,而且子元素都要縮進(jìn)。默認(rèn)設(shè)置為 true 。

命名空間

通過使用setNamespace()并傳入Namespace對(duì)象,也可以給定元素設(shè)置命名空間

var messages = 
    Hello world!
;
messages.setNamespace(new Namespace("wrox", "http://www.wrox.com/"));

其他變化

引入了for-each-in循環(huán),以便迭代遍歷每一個(gè)屬性并返回屬性的值

var employees = 
    
      Nicholas C. Zakas


  Jim Smith

;
for each (var child in employees){
  alert(child.toXMLString());
}

前面啟用E4X

要想完整地啟用E4X,需要將

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/98034.html

相關(guān)文章

  • JS學(xué)習(xí)筆記(19)(E4X

    摘要:的類型類型創(chuàng)建對(duì)象的方法調(diào)用構(gòu)造函數(shù)使用字面量將數(shù)據(jù)直接指定給一個(gè)變量。表示解析器應(yīng)該忽略標(biāo)記中的處理指令。這三個(gè)設(shè)置會(huì)影響對(duì)傳入到構(gòu)造函數(shù)中的字符串以及字面量的解析。 showImg(https://segmentfault.com/img/bVbvHVV?w=737&h=593); 1、E4X的類型 1.1 XML類型 1、創(chuàng)建XML對(duì)象的方法: (1)調(diào)用構(gòu)造函數(shù): var x ...

    lijinke666 評(píng)論0 收藏0
  • 高程3總結(jié)#3基本概念

    摘要:基本概念語法區(qū)分大小寫,中的一切變量函數(shù)名和操作符都區(qū)分大小寫。要將一個(gè)值轉(zhuǎn)換成對(duì)應(yīng)的值,可以調(diào)用類型包括整數(shù)和浮點(diǎn)數(shù)值,基本數(shù)值字面量格式是十進(jìn)制整數(shù),除了十進(jìn)制外還有八進(jìn)制十六進(jìn)制。八進(jìn)制第一位必須是,十六進(jìn)制第一位必須是。 基本概念 語法 區(qū)分大小寫,ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。函數(shù)名不能使用typeof,因?yàn)樗且粋€(gè)關(guān)鍵字,但typeOf...

    Rindia 評(píng)論0 收藏0
  • 高程3總結(jié)#8BOM

    摘要:對(duì)象的核心對(duì)象是,它表示瀏覽器的一個(gè)實(shí)例。而和則表示該容器中頁面視圖區(qū)的大小。在中,與返回相同的值,即視口大小而非瀏覽器窗口大小。第三個(gè)參數(shù)是一個(gè)逗號(hào)分隔的設(shè)置字符串,表示在新窗口中都顯示哪些特性。這應(yīng)該是用戶打開窗口后的第一個(gè)頁面 BOM window對(duì)象 BOM的核心對(duì)象是window,它表示瀏覽器的一個(gè)實(shí)例。在瀏覽器中,window對(duì)象有雙重角色,它既是通過JavaScript訪...

    MASAILA 評(píng)論0 收藏0
  • 高程3總結(jié)#7函數(shù)表達(dá)式

    摘要:匿名函數(shù)可以用來模仿塊級(jí)作用域來避免這個(gè)問題這里是塊級(jí)作用域代碼定義并立即調(diào)用了一個(gè)匿名函數(shù),將函數(shù)聲明包含在一對(duì)圓括號(hào)中,表示它實(shí)際上是一個(gè)函數(shù)表達(dá)式,而緊隨其后的另一對(duì)圓括號(hào)會(huì)立即調(diào)用這個(gè)函數(shù)。 函數(shù)表達(dá)式 遞歸 遞歸函數(shù)是在一個(gè)函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的 function factrial(num){ if(num

    sevi_stuo 評(píng)論0 收藏0
  • 高程3總結(jié)#1JavaScript簡(jiǎn)介

    摘要:簡(jiǎn)介簡(jiǎn)史誕生于年,當(dāng)時(shí)主要負(fù)責(zé)表單的輸入驗(yàn)證。實(shí)現(xiàn)一個(gè)完整的由三部分組成核心文檔對(duì)象模型瀏覽器對(duì)象模型就是對(duì)實(shí)現(xiàn)該標(biāo)準(zhǔn)規(guī)定的各個(gè)方面內(nèi)容的語言的描述。把整個(gè)頁面映射為一個(gè)多層節(jié)點(diǎn)結(jié)構(gòu)。由萬維網(wǎng)聯(lián)盟規(guī)劃。主要目標(biāo)是映射文檔的結(jié)構(gòu)。 JavaScript簡(jiǎn)介 JavaScript簡(jiǎn)史 JavaScript誕生于1995年,當(dāng)時(shí)主要負(fù)責(zé)表單的輸入驗(yàn)證。 如果沒有表單驗(yàn)證的功能,填入信息之...

    betacat 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<