




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
XMLXMLXML被設(shè)計用來傳輸和數(shù)據(jù)在我們的XML中,你將了解什么是XML,以及XML與HTML之間的差異XMLXMLXMLXMLHTML如何使用XMLXMLXMLXML有邏輯且非常簡單的XML語則XMLXML元素、內(nèi)容和命名規(guī)則、父與子元間的關(guān)系XMLXMLXMLXMLXML簡單的XML語法檢查工具XMLXML在瀏覽器中查看XMLCSS來顯示CSSXMLXSLXSLXMLXMLXML如何使用瀏覽器來、更新、創(chuàng)建并操作XML文檔XMLXML文檔對象模型(DOM)XMLtoHTMLXMLXMLHttpRequestXMLXMLJavaScriptHTMLXMLXML如何使用XML命名空間避免元素命名XMLXMLXMLXMLXMLXMLXMLDOMXMLXMLXML把數(shù)據(jù)到XML文于XML文件之中。XMLXML現(xiàn)實生活中的XMLXMLXMLXMLXML本文包括在本所學(xué)內(nèi)容的一個總結(jié),以及我們向你推薦的下一步應(yīng)該學(xué)習(xí)的內(nèi)容XML實例/XMLXMLXMLW3SchoolXML01、XMLPreviousNextXML被設(shè)計用來傳輸和數(shù)據(jù)HTMLHTML/如果您希望首先學(xué)習(xí)這些項目,請在我們的首頁這些XML指可擴展標(biāo)記語言(EXtensibleMarkupXML是一種標(biāo)記語言XML的設(shè) 沒有被預(yù)定義。您需要自行定義XML被設(shè)計為具有自我描述性XMLW3C的推薦標(biāo)準(zhǔn)XML與HTML的主要差異XML不是HTML的替代。XMLHTMLXML被設(shè)計為傳輸和數(shù)據(jù),其焦點是數(shù)據(jù)的內(nèi)容。HTML被設(shè)計用來顯示數(shù)據(jù),其焦點是數(shù)據(jù)的外觀。HTML旨在顯示信息,而XML旨在傳輸信息。XML 的(沒有任何行為的也許這有點難以理解,但是XML不會做任何事情。XML被設(shè)計用來結(jié)構(gòu)化、以及傳輸信息下面是John寫給George的便簽,為<body>Don'tforgetthe這個有標(biāo)題以及留言。它也包含了發(fā)送者和接受者的信息。但是,這個XML文檔仍然沒有做任何情。它僅僅是包裝在XML中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出XMLXMLXML不過,能夠讀懂XML的應(yīng)用程序可以有針對性地處理XML的。的功能性意義依賴于應(yīng)用程序XML上例中的沒有在任何XML標(biāo)準(zhǔn)中定義過(比如<to>和<from>)。這些是由文檔的創(chuàng)作者這是因為XML沒有預(yù)定義的(在HTML中使用的以及HTML的結(jié)構(gòu))是預(yù)定義的。HTML文檔只使用在HTML標(biāo)準(zhǔn)中定義過的(比如<p>、<h1>等等)。(XML允許創(chuàng)作者定義自己的和自己的文檔結(jié)構(gòu)XMLHTMLXMLHTMLXMLHTMLweb應(yīng)用程序中,XMLHTML用于格式化并顯示數(shù)據(jù)。對XML的最好的描述是:XMLXMLW3C(XML)1998年2月10W3CXMLXML標(biāo)準(zhǔn)突飛猛進的開發(fā)進度,以及大批的軟件開發(fā)商采用這個標(biāo)準(zhǔn)的日新月異的速度時,目前,XMLWebWebHTMLXML無所不在。XML是各種應(yīng)用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ撸⑶以谛畔⒑兔枋鲱I(lǐng)域變02、XMLPreviousNextXML應(yīng)用于web開發(fā)的許多方面,常用于簡化數(shù)據(jù)的和共享XMLHTMLHTMLHTML通過XML,數(shù)據(jù)能夠在獨立的XML文件中。這樣你就可以專注于使用HTML進行布局和顯示,并確保修改底層數(shù)據(jù)不再需要對HTML進行任何的改變。通過使用幾行JavaScript,你就可以一個外部XML文件,然后更新HTML中的數(shù)據(jù)內(nèi)容XML在真實的世界中,計算機系統(tǒng)和數(shù)據(jù)使用不兼容的格式來數(shù)據(jù)XML數(shù)據(jù)以純文本格式進行,因此提供了一種獨立于軟件和硬件的數(shù)據(jù)方法。XMLXML由于可以通過各種不兼容的應(yīng)用程序來數(shù)據(jù),以XML交換數(shù)據(jù)降低了這種復(fù)雜性XMLXML數(shù)據(jù)以文本格式。這使得XML在不損失數(shù)據(jù)的情況下,更容易擴展或升級到新的操作系統(tǒng)XMLXML獨立于硬件、軟件以及應(yīng)用程序,XML不同的應(yīng)用程序都能夠您的數(shù)據(jù),不僅僅在HTML頁中,也可以從XML數(shù)據(jù)源中進行或其他殘障使用。XMLInternetInternetXMLXHTML-的HTML版WSDL-webWAP和WML-RSS-RSSfeedRDFOWL-SMIL-web03、XMLPreviousNextXML文檔形成了一種樹結(jié)構(gòu),它從“根部”開始,然后擴展到“”XMLXML<?xml<?xmlversion="1.0"encoding="ISO-8859-<body>Don't<body>Don'tforgetthe第一行是XML。它定義XML的版本(1.0)和所使用的編碼(ISO-8859-1=Latin-1/西歐字符44個子元素(tofrom,heading<body>Don'tforgettheXML文檔包含了JohnGeorgeXMLXMLXML文檔必須包含根元素XML文檔中的元素形成了一棵文檔樹。這棵樹從根部開始,并擴展到樹的最底端。 父、子以及同胞等術(shù)語用于描述元間的關(guān)系。父元素?fù)碛凶釉亍O嗤瑢蛹壣系淖釉爻蔀橥ㄐ炙性鼐蓳碛形谋緝?nèi)容和屬性(HTML中)XML<book<titlelang="en">Everyday<author>GiadaDe<book<titlelang="en">Harry<author>JK.<book<title<titlelang="en">Learning<author>ErikT.<bookstore><book><bookstore><book>4個子元素:<title>、author>、<year>、<price>04、XML語PreviousNextXML的語則很簡單,且很有邏輯。這些規(guī)則很容易學(xué)習(xí),也很容易使用XML在HTML,經(jīng)常會看到?jīng)]有關(guān)閉的元素<p>This<p>Thisisa<p>Thisisanother在XML中,省略關(guān)閉是的。所有元素都必須有關(guān)閉<p>This<p>Thisisa<p>Thisisanother注釋:您也許已經(jīng)注意到XML沒有關(guān)閉。這不是錯誤。不屬于XML本身的組成部分。不是XML元素,也不需要關(guān)閉XML對大小寫敏XML元素使用XML進行定義XML對大小寫敏感。在XML中,<Letter>與<letter>是不同的必須使用相同的大小寫來編寫打開和關(guān)閉注釋:打開和關(guān)閉通常被稱為開始和結(jié)束。不論您喜歡哪種術(shù)語,它們的概念都是相XMLHTML<b><i>This<b><i>ThistextisboldandXML中,所有元素都必須<b><i>This<b><i>Thistextisboldand<i><b><b>XMLXML文檔必須有一個元素是所有其他元素的父元素。該元素稱為根元素 XMLHTML類似,XML也可擁有屬性(名稱/值的對)XML中,XMLXML文檔。第一個是錯誤的,第二個是正確<note<note<note在第一個文檔中的錯誤是,note元素中的date實體XML"<"XML元素中,會發(fā)生錯誤,這是因為解析器會把它當(dāng)作新元素的開始。這樣會產(chǎn)生XML錯誤:<message>if<message>ifsalary<1000為了避免這個錯誤,請用一個實體來代替"<"字符<message>if<message>ifsalary<1000在XML中,有5個預(yù)定義的實體<>;&'"注釋:在XML中,只有字符"<"和"&"確實是的。大于號是合法的,但是用實體來代替它是XMLXMLHTML<!--<!--Thisisacomment--XMLHTMLomynameis輸出omynameisXMLXML以LF換在Windows應(yīng)用程序中,換行通常以一對字符來:回車符(CR)和換行符(LF)。這對字符與打字機設(shè)置新行的動作有相似之處。在Unix應(yīng)用程序中,新行以LF字符。而Macintosh應(yīng)用程序使用CR來新行。05、XMLPreviousNextXMLXMLXMLXML元素指的是從(且包括)開始直到(且包括)結(jié)束的部分<book<title>Harry<author>JK.<book<book<title>Learning<author>ErikT.在上例中,<bookstore<book都擁有元素內(nèi)容,因為它們包含了其他元素。<author只有文<book>元素?fù)碛?category="CHILDREN")XMLXML“xml”(XML、Xml)可使用任何名稱,沒有保留的"-"".""""name""first"避免":"字符。冒號會被轉(zhuǎn)換為命名空間來使用(稍后介紹)XMLXML文檔中的元素。有一個實用的經(jīng)驗,即使用數(shù)據(jù)庫的名稱規(guī)則來命名XML文檔中的元素。éòáXMLXML元素是可擴展的(增加新元素XML元素是可擴展,以攜帶的信息。請看下面這個XML例子:<body>Don'tforgetthe<to>、<from><body>元素提取出來,并To:GeorgeFrom:Don'tforgettheXML<body>Don'tforgetthe那么這個應(yīng)用程序會中斷或嗎XML<to>、<from><body>元素,并產(chǎn)生同樣XML06、XMLPreviousNextXML元素可以在開始中包含屬性,類似HTMLXML(Attribute)XMLHTML,你會回憶起這個:<imgsrc="computer.gif">。"src"<img>元素的額外HTML中(XML中),<img<img<a<file<fileXML屬性必須加引號(單/雙引號,如果屬性值本身包含雙引號,那么使用實體 屬性值必須被引號包圍,不過單引號和雙引號均可使用。比如一個人屬性值必須被引號包圍,不過單引號和雙引號均可使用。比如一個人 <gangster<gangstername='George"Shotgun"或者可以使用實體<gangster<gangstername="George"Shotgun"XMLvs. > >沒有什么規(guī)矩可以告訴我們什么時候該使用屬性,而什么時候該使用子元素。我的經(jīng)驗是在HTML中,XMLXMLdate<note<note<body>Don'tforgetthedate<body>Don'tforgetthe第三個例子中使用了擴展的date元素(這是我的最愛<body>Don'tforgettheXML屬性?(盡量使用元素屬性無法包含多個值(子元素可以屬性無法描述樹結(jié)構(gòu)(子元素可以屬性不易擴展(為未來的變化屬性難以閱讀和<noteday="08"month="08"year="2008"to="George"from="John"heading="Reminder"body="Don'tforgetthemeeting!"><noteday="08"month="08"year="2008"to="George"from="John"heading="Reminder"body="Don'tforgetthemeeting!">XML屬性(有關(guān)數(shù)據(jù)的數(shù)據(jù)有時候會向元素分配ID。這些ID索引可用于標(biāo)識XML元素,它起作用的方式與HTML中<note<body>Don'tforgetthe<note<heading>Re:<body>Iwill上面的ID07、XMLPreviousNextXML被稱為“形式良好”XMLDTDXML是“合法”XMLXML一個"形式良好"XML一個"形式良好"的XML文檔會遵守前幾章介紹過的XML語則XMLXML XMLXML<?xml<?xmlversion="1.0"encoding="ISO-8859-<body>Don'tforgettheXML一個合法的XML文檔是"形式良好"的XML文檔,同樣遵守文檔類型定義(DTD)的語<?xml<?xmlversion="1.0"encoding="ISO-8859-<!DOCTYPEnoteSYSTEM<body>Don'tforgetthe在上例中,DOCTYPE是對外部DTD文件的。下面的段落展示了這個文件的內(nèi)容XMLDTDXML<!DOCTYPE<!DOCTYPEnote<!ELEMENTnote<!ELEMENT<!ELEMENT <!ELEMENTheading<!ELEMENT 如果您希望學(xué)習(xí)DTD,請我們的DTDXMLSchema(XMLDTD代替者W3CXML的DTDXML<xs:element<xs:element <xs:element<xs:element <xs:elementname="heading"<xs:element <如果您需要學(xué)習(xí)XMLSchema,請我們的XMLSchemaXMLXML文件進行語法檢查。08XMLPreviousNextXML打開XML文件-XML文檔將顯示為代碼顏色化的根以及子元素。通過點擊元素左側(cè)的加號或減號,可-符號的源代碼,請從瀏覽器菜單中選擇“查看源代碼”注釋:Netscape,OperaSafariXML然后選擇“查看源代碼”XMLXMLXMLXMLXMLXML的感性認(rèn)識。一個XML的CD這是我父親的CD收藏,被為XML數(shù)據(jù)(我猜可能是很老很無聊的題目...:-XML來自園藝店的植 ,為XML數(shù)據(jù)這是來自餐館的早餐菜單,為XML數(shù)據(jù)XMLXML由于XML由XML文檔的作者“發(fā)明”,瀏覽器無法確定像<table>這樣一個究竟描述一HTMLXMLCSS、XSL、JavaScript以及XML數(shù)據(jù)島。09XSLTXML(首選PreviousNextXSLTXMLXSLTXSLTXMLXSLT(eXtensibleStylesheetLanguageTransformations)CSSXSLTXMLHTML,正如以下的這些例子演XML<?xmlversion="1.0"encoding="ISO-8859-1"-<!-EditedEditedwithXMLSpyv2007 <name>Belgian<description>twoofourfamousBelgianWaffleswithplentyofrealmaple<name>StrawberryBelgian<description>lightBelgianwafflescoveredwithstrawberriesandwhipped<name>Berry-BerryBelgian<description>lightBelgianwafflescoveredwithanassortmentoffreshberriesandwhippedcream</description><name>French <name>Homestyle<description>twoeggs,baconorsausage,toast,andourever-popularhash XSLT<?xmlversion="1.0"encoding="ISO-8859-1"-<!-EditedEditedwithXMLSpyv2007 xmlns:xsl="" <xsl:for-each <spanstyle="font-<xsl:value-ofselect="name"-<xsl:value-ofselect="price"<xsl:value-ofselect="description"<spanstyle="font-(<xsl:value-ofselect="calories"caloriesperXML<?xml-stylesheettype="text/xsl"href="simple.xsl"?>,把這個XML文件到XSL文件:<?xml<?xmlversion="1.0"encoding="ISO-8859-<?xml-stylesheettype="text/xsl"><name>BelgiantwoofourfamousBelgian>如果您需要學(xué)習(xí)有關(guān)XSLT的知識,請我們的《XSLT》XSLT在上例中,XSLT轉(zhuǎn)換是由瀏覽器完成的,瀏覽器的是XML文件XSLTXML時,不同的瀏覽器可能會產(chǎn)生不同結(jié)果。為了減少這種問題,可以在服務(wù)器上進行XSLT轉(zhuǎn)換。10CSSPreviousNextCSSXMLCSSCSSXMLCSSXML文檔:這是XML文件:CD這是樣式表:CSSCSS文件格式化的XML<?xml-stylesheettype="text/css"href="cd_catalog.css"?>,把這個XML文件到CSS文件:<?xml<?xmlversion="1.0"encoding="ISO-8859-<?xml-stylesheettype="text/css"<TITLE>Empire<>Bob><><TITLE>Hideyour<>Bonnie><>CBS>....CSSXMLXMLXMLW3CXSL標(biāo)11、XML解析器(如何使用瀏覽器 、更新、創(chuàng)建并操作XML文檔PreviousNext大多數(shù)瀏覽器都有和操作XML的內(nèi)建XML解析器解析器把XML轉(zhuǎn)換為JavaScript可的對象W3SchoolXML文件(例子<scripttype="text/javascript">functionparML(){try//Internet{xmlDoc=new }{try//Firefox,Mozilla,Opera,{ }{}}}<body <h1>W3SchoolsInternal<p><b>To:</b><spanid="to"></span><br<b>From:</b><spanid="from"></span><br<b>Message:</b><spanXML字符串(例子<scripttype="text/javascript">functionparML(){text=text+"<body>Don'tforgetthemeeting!</body>";try//Internet{xmlDoc=newActiveXObject(" }{try//Firefox,Mozilla,Opera,{parser=newDOMParser();}{}}}<body <h1>W3SchoolsInternal<p><b>To:</b><spanid="to"></span><br<b>From:</b><spanid="from"></span><br<b>Message:</b><span所有現(xiàn)代瀏覽器都有和操作XML的內(nèi)建XML解析器解析器把XML載入內(nèi)存,然后把它轉(zhuǎn)換為可通過JavaScript的XMLDOM對象。您將在本的下一節(jié)中學(xué)習(xí)有關(guān)XMLDOM的知識。XMLXMLXML字符串(文本)XML樹、訪在本中,為您展示如何創(chuàng)建可同時工作于InternetExplorer和其他瀏覽器中的。注釋:當(dāng)我們談及XML解析,我們常常會使用有關(guān)XML元素的術(shù)語:節(jié)點。XMLXMLInternetExplorer5JavaScriptXMLvarvarxmlDoc=newXML第二行關(guān)閉異步加載,這樣確保在文檔完全加載之前解析器不會繼續(xù)的執(zhí)行"note.xml"XMLJavaScripttxtvarvarxmlDoc=new【loadXML()方法用于加載字符串(文本),load()FirefoxXMLJavaScript片段把XML("note.xml")varvarXML第二行關(guān)閉異步加載,這樣確保在文檔完全加載之前解析器不會繼續(xù)的執(zhí)行"note.xml"XMLJavaScripttxtvarvarparser=newvarXMLtxt的字符串?!綢EloadXML()XMLDOMParser跨域(現(xiàn)代的瀏覽器不允許跨域的出于安全方面的原因,現(xiàn)代的瀏覽器不允許跨域的XMLW3SchoolXMLW3SchoolXMLxmlDoc.load()"Accessisdenied"12、XMLPreviousNextDOM XMLDOM(定義一 和操作XML文檔的標(biāo)準(zhǔn)方法XMLDOM ObjectModel)定義一套和操作XML文檔的標(biāo)準(zhǔn)方法DOM把XML文檔作為樹結(jié)構(gòu)來查看能夠通過DOM樹來所有元素可以修改或刪除它們的內(nèi)容XML:XML:使用DOM 從<to>元素中獲取文本(ge xmlDoc-XML ementsByTagName("to")[0]-<to>childNodes[0<to>元素的第一個子元素(文本節(jié)點nodeValue-節(jié)點的值(文本本身您可以在W3School的XMLDOM中學(xué)習(xí)相關(guān)知識HTMLDOM(定義一 和操作HTML文檔的標(biāo)準(zhǔn)方法HTMLDOM(HTMLObjectModel)定義一套和操作HTML文檔的標(biāo)準(zhǔn)方法??梢酝ㄟ^HTMLDOM所有HTML元素。HTML:使用DOM來改變id="to"的HTML元素的文本(ge HTML ementById("to")-id="to"HTMLinnerHTMLHTML您可以在W3School的HTMLDOM中學(xué)習(xí)相關(guān)知識XML-XML("note.xml")XML<scriptfunction {try//Internet{xmlDoc=new }{try//Firefox,Mozilla,Opera,{ }{}} }<body<body .cnInternal<p><b>To:</b><spanid="to"></span><br<b>From:</b><spanid="from"></span><br<b>Message:</b><InternalTo:From:Message:Don'tforgettheXML中提取文本"John" 在這個XML例子中只有一個<from>中但是仍然需要規(guī)定數(shù)組的下標(biāo)[0],這是因為XML析器方法 ementsByTagName()返回所有<from>節(jié)點的一個數(shù)組XML-XML<scripttype="text/javascript">functionpar {text=text+"<body>Don'tforgetthetry//Internet{xmlDoc=new }{try//Firefox,Mozilla,Opera,{parser=new}{}} }<body .cnInternal<p><b>To:</b><spanid="to"></span><br<b>From:</b><spanid="from"></span><br<b>Message:</b><InternalTo:From:Message:Don'tforgetthe注釋:InternetExplorerloadXML()XML13、XMLtoPreviousNextXMLHTML。把XML數(shù)據(jù)顯示為HTML表格XMLHTMLHTML在上一節(jié)中,我們講解了如何通過JavaScript來解析XML并DOMXML(cd_catalog.xml)CDHTML<scripttype="text/javascript">varxmlDoc=null;if{//codeforxmlDoc=new}elseif){//codeforMozilla,Firefox,Opera,}{alert('Yourbrowsercannothandlethis}if{.write("<table.write("<tablevarx=xmlDoc.ge for(i=0;i<x.length;i++){ }}TIYHTMLXML檢測瀏覽器,然后使用合適的解析器來加載HTML表格(<table使用 ementsByTagName()來獲得所有XML的CD節(jié)針對每個CD節(jié)點,把和TITLE中的數(shù)據(jù)顯示為表格數(shù)</table>如需有關(guān)JavaScript和XMLDOM的信息,請我們的XMLDOM出于安全方面的原因,現(xiàn)代的瀏覽器不允許跨域的XMLW3SchoolXMLW3SchoolXMLxmlDoc.load()"Accessisdenied"14、XMLHttpRequestPreviousNextXMLHttpRequestXMLHttpRequest對象是開發(fā)者的夢想 向服務(wù)器發(fā)送數(shù)所有現(xiàn)代的瀏覽器都支持XMLHttpRequest對象。XMLHTTP通信。XMLHttpRequestJavaScriptXMLHttpRequest在所有現(xiàn)代瀏覽器中(包括IExmlhttp=newxmlhttp=newInternetExplorer5和6xmlhttp=newxmlhttp=new <script<scripttype="text/javascript">varxmlhttp;function{if{//codeforallnewbrowsersxmlhttp=new}elseif{//codeforIE5andIE6xmlhttp=newActiveXObject("}if{}{alert("Yourbrowserdoesnotsupport}}function{ifif{//4=if{//200=//...ourcode}{alert("ProblemretrievingXML}}}注釋:onreadystatechange是一個句柄。它的值(state_Change)是一個函數(shù)的名稱,當(dāng)XMLHttpRequest0(uninitialized)4(complete)進行變化。僅在狀態(tài)為4時,我們才執(zhí)行代碼。Async=trueopen()"true"。True表示會在send()方法之后繼續(xù)執(zhí)行,而不等待來自服務(wù)器的響應(yīng)onreadystatechange使代碼復(fù)雜化了。但是這是在沒有得到服務(wù)器響應(yīng)的情況下,防止代碼停止"false"onreadystatechange代碼。如果在請求失敗時是否執(zhí)XMLHTTPtextfilediv元素中通過XMLHTTP進行HEAD請求XMLHTTP進行指定的HEADXMLHTTPXMLXML/XMLASP<scripttype="text/javascript">if{//codeforIE7,Firefox,Opera,etc.xmlHttp=newXMLHttpRequest();}elseif{//codeforIE6,xmlHttp=new}if{xmlHttp.open("GET","note.xml",false);xmlHttp.open("POST","demo_dom_http.asp",false);}{alert("Yourbrowserdoesnotsupport}ASPVBScriptsetxmldoc=foreachxinifx.NodeName="to"thenname=x.textresponse.writeXMLHttpRequestW3CW3CXMLHttpRequest不過,W3CDOMLevel3"LoadandSave"規(guī)范包含了一些相似的功能性,但是還沒有任何瀏覽XMLDOM參考手冊XMLHttpRequest15、XMLHttpRequest(詳細--XMLPreviousNextXMLHttpRequestXMLHttpRequest對象提供了對HTTP協(xié)議的完全的,包括做出POST和HEAD請求以及普通GET請求的能力。XMLHttpRequestWeb服務(wù)器的響應(yīng),并且能夠以文本或者一個DOM文檔的形式返回內(nèi)容。盡管名為XMLHttpRequest,它并不限于和XML文檔一起使用:它可以接收的文本文檔XMLHttpRequestAJAXWeb應(yīng)用程序架構(gòu)的一項關(guān)鍵功能。XMLHttpRequestXMLHttpRequest對象的創(chuàng)建。在IE5和IE6中,必須使用特定于IE的ActiveXObject()構(gòu)造函數(shù)。正如在XMLHttpRequest對象這一節(jié)所介紹的。W3CXMLHttpRequestW3C已經(jīng)開始了標(biāo)準(zhǔn)化的工作,本手冊介紹的內(nèi)容都是基XMLHttpRequestreadyState3HTTP請求的狀態(tài).XMLHttpRequest0HTTP450初始化狀態(tài)。XMLHttpRequestabort()1open()send()2Send()方法已調(diào)用,HTTPWeb34HTTPreadyStateabort()open()方法。每次這個屬性的值增加的時候,都會觸發(fā)onreadystatechange句柄。目前為止為服務(wù)器接收到的響應(yīng)體(不包括頭部),readyState3readyState3,這個屬性返回目前已經(jīng)接收的響應(yīng)部分。如果readyState為4,這個屬性保存了完整的響應(yīng)體。UnicodeUTF-8對請求的響應(yīng),解析為XML并作為對象返回HTTP200404表示"NotFound"小于3的時候這一屬性會導(dǎo)致一個異常這個屬性用名稱而不是數(shù)字指定了請求的HTTP的狀態(tài)代碼。也就是說,當(dāng)狀態(tài)為200的時候它是"OK"404"NotFound"statusreadyState3的時每次readyState屬性改變的時候調(diào)用的句柄函數(shù)。當(dāng)readyState為3時,它也可能調(diào)用多次XMLHttpRequestreadyState0的狀態(tài),并且取消所有未決的網(wǎng)絡(luò)活動。HTTPreadyState3nullHTTP響應(yīng)的頭部。頭部作為單個的字符串返回,一行一個頭部。每行用換行符"\r\n"隔開。HTTPHTTP響應(yīng)頭部的名稱??梢允褂萌魏未笮憗碇圃摲椒ǖ姆祷刂凳侵付ǖ腍TTP響應(yīng)頭部的值,如果沒有接收到這個頭部或者readyState小于3則HTTPURLHTTPHTTPopen()HTTPHTTPopen(method,open(method,url,async,username,methodHTTPGET、POST和HEADurl參數(shù)是請求的主體。大多數(shù)瀏覽器實施了一個同源安全策略,并且要求這個URL與包含的文本asyncfalsesend()的調(diào)用將阻塞,直到響應(yīng)完全接收。如果這個參數(shù)是true或省略,請求是異步的,且通常需要一個onreadystatechange句柄。username和password參數(shù)是可選的為url所需的提供認(rèn)證資格如果指定了它們會覆蓋這個方法初始化請求參數(shù)以供send()方法稍后使用。它把readyState設(shè)置為1,刪除之前指定的所有請求頭部,以及之前接收的所有響應(yīng)頭部,并且把responseText、responML、status以及statusTextreadyState0的時候(XMLHttpRequest對象剛創(chuàng)建或者abort()方法調(diào)用后)以及當(dāng)readyState為4時(已經(jīng)接收響應(yīng)時),調(diào)用這個方法是安全的。當(dāng)針對任何其他狀態(tài)調(diào)用的時候,open()方法的行為是為指定的。send()XMLHttpRequest對象以便復(fù)用,open()HTTP如果通過調(diào)用open()指定的HTTP方法是POST或PUT,body參數(shù)指定了請求體,作為一個字符 是不可用的,應(yīng)該為null(有些實現(xiàn)不允許省略該參數(shù))。是1,send()拋出一個異常。否則,它發(fā)送一個HTTP請求,該請求由以下幾部分組成:open()HTTP方法、URL以及認(rèn)證資格(如果有的話)setRequestHeader()時指定的請求頭部(如果有的話)body一旦請求發(fā)布了,send()把readyState設(shè)置為2,并觸發(fā)onreadystatechange句柄如果之前調(diào)用的open()參數(shù)async為false,這個方阻塞并不會返回,直到readyState為4asynctrue,或者這個參數(shù)省略了,send()立即返回,并且正如后面所介紹的,服務(wù)器響應(yīng)將在一個線程中處理。如果服務(wù)器響應(yīng)帶有一個HTTP重定向,send()方法或線程自動遵從重定向。當(dāng)所有的HTTP響應(yīng)頭部已經(jīng)接收,send()或線程把readyState設(shè)置為3并觸發(fā)onreadystatechange句柄。如果響應(yīng)較長,send()或線程可能在狀態(tài)3中觸發(fā)onreadystatechange句柄:這可以作為一個進度指示器。最后,當(dāng)響應(yīng)完成,send()或線程把readyState設(shè)置為4,并最后次觸發(fā)句柄setRequestHeader(name,setRequestHeader(name,namevalue參數(shù)是頭部的值。這個參數(shù)不應(yīng)該包括換行。setRequestHeader()HTTPsend()調(diào)用而發(fā)布readyState1open()之后,但在調(diào)用send()之前。如果open()調(diào)用指定了認(rèn)證資格,XMLHttpRequest自動發(fā)送一個適當(dāng)?shù)腁uthorization請求頭部。但是,你可以使用setRequestHeader()來添加這個頭部。類似地,如果Web服務(wù)器已經(jīng)保存了和傳遞給open()的URL相關(guān)聯(lián)的 2頭部也自動地包含到請求中??梢酝ㄟ^調(diào)用setRequestHeader()來把這些 添加到頭部。XMLHttpRequest也可以為XMLHttpRequestHTTP協(xié)議。這包括如下16、XMLPreviousNextHTMLJavaScriptXMLXML請看下面這個XML文檔("cd_catalog.xml"),它描述了一個 <?xml<?xmlversion="1.0"encoding="ISO-8859-<TITLE>Empire<>Bob><<>.....more."cd_catalog.xml"XMLXML(cd_catalog.xml)XMLvarvarif{//codeforxmlDoc=new}elseif){//codeforFirefox,Mozilla,Opera,}{alert('Yourbrowsercannothandlethis}在本代碼執(zhí)行后,xmlDoc成為一個XMLDOM對象,可由JavaScriptXMLHTMLXMLDOMHTML.write("<table.write("<tablevarx=xmlDoc.ge for(vari=0;i<x.length;i++){ }XMLCD元素,會創(chuàng)建一個表格行。每個表格行包含兩個表格數(shù)據(jù)單元,其中的數(shù)據(jù)來自當(dāng)前CD元素的和TITLE。TIYHTMLXMLHTMLXMLXMLHTMLHTML<head><CD>XML數(shù)據(jù),然后在id="show"的HTML元素中顯示數(shù)據(jù):varvar function {= :+"<br/>Title:"+title+"<br/>Year: }HTML的body元素包含一個onload屬性,它的作用是在頁面已經(jīng)加載時調(diào)用disy()函數(shù)bodyXML<divid='show'><div<divTIYXML<div>XMLCD元素中的數(shù)據(jù)。為了導(dǎo)航到數(shù)據(jù)的下一行,必須添加為了向上例添加導(dǎo)航(功能),next()previous()functionfunction{{if(i<x.length- }}function{if{ }}next()CD元素后不顯示任何東西,previous()函數(shù)確保已到達第一個next/previous按鈕來調(diào)用next()previous()<input<inputtype="button"onclick="previous()"value="previous"<inputtype="button"onclick="next()"value="next"TIYXML如果您正在使用IE5.0或者更高的版本:看看您可以怎樣為這個應(yīng)用程序添加一點點想象力。17、XML(XMLPreviousNextXML命名空間可提供避免元素命名的方法由于XML中的元素名是預(yù)定義的,當(dāng)兩個不同的文檔使用相同的元素名時,就會發(fā)生命名。這個XML文檔攜帶著某個表格中的信息:XML文檔攜帶有關(guān)桌子的信息(一件家具<name>AfricanCoffeeXML<table>生命名XML<f:name>AfricanCoffee現(xiàn)在,命名不存在了,這是由于兩個文檔都使用了不同的名稱來命名它們的<table>元(<h:table><f:table>)<table>XML<h:table<h:tableXML<f:table<f:table<f:name>AfricanCoffee與僅僅使用前綴不同,我們?yōu)?lt;table>添加了一個xmlns屬性,這樣就為前綴賦予了一個與某XMLNamespace(xmlns)XML命名空間屬性被放置于某個元素的開始之中,并使用以下的語法請統(tǒng)一資源標(biāo)示符(UniformResourceIdentifier統(tǒng)一資源標(biāo)示符是一串可以標(biāo)示因特網(wǎng)資源的字符。最常用的URI是用來標(biāo)示因特網(wǎng)地址的統(tǒng)一資源(URL)。另一個不那么常用的URI是統(tǒng)一資源命名(URN)。在我們的例子中,我們僅使用默認(rèn)名空間(Default為某個元素定義默認(rèn)名空間可以讓我們省去在所有的子元素中使用前綴的工作XML<table<tableXML<table<table<name>AfricanCoffee當(dāng)開始使用XSL時,您不久就會看到實際使用中名空間。XSL樣式表用于將XML文檔轉(zhuǎn)換為其他格式,比如HTML。如果您仔細觀察下面的這個XSL文檔,就會看到大多數(shù)的是HTML。非HTML的都有前綴xsl,并由此命名空間標(biāo)示:"":<?xml<?xmlversion="1.0"encoding="ISO-8859-<xsl:stylesheet te<h2>MyCD<table<th<th<xsl:for-each<td><xsl:value-of<td><xsl:value-of<td><xsl:value-of 18、XMLPreviousNextXMLC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024商業(yè)購物中心二次元潮玩店谷子店周年慶活動策劃案
- 循環(huán)系統(tǒng)疾病患者的護理
- 小學(xué)二年級數(shù)學(xué)上冊加減乘除混合口算題
- 企業(yè)股權(quán)收購合同范例
- 買賣兒童農(nóng)村房屋合同范例
- 勞務(wù)輸送框架合同范本
- 企業(yè)集資合同范例
- 臨時兼職用工合同范例
- 加盟拿料合同范例
- 入園合同范例
- 2024年非高危行業(yè)生產(chǎn)經(jīng)營單位主要負(fù)責(zé)人及安全管理人員安全生產(chǎn)知識和管理能力試題庫附答案
- 健康照護師培訓(xùn)
- 2024人工智能大模型技術(shù)財務(wù)應(yīng)用藍皮書
- 2025新外研社版英語七年級下單詞默寫表
- 國有企業(yè)管理人員處分條例培訓(xùn)2024
- 生態(tài)安全教育課件
- 專題14 光學(xué)-2024物理高考真題及??碱}分類匯編
- 《中小學(xué)校園食品安全和膳食經(jīng)費管理工作指引》專題培訓(xùn)
- 企業(yè)年度股東會、董事會、監(jiān)事會會議材料模板
- 《報關(guān)單填寫規(guī)范》課件
- DZT0181-1997水文測井工作規(guī)范
評論
0/150
提交評論