版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
XML及相關(guān)技術(shù)簡介第一部分XML基本知識1.1
XML簡介eXtensibleMarkupLanguage(可擴展標(biāo)記語言)XML是一種元語言,允許通過使用自定義的格式、標(biāo)識,交換和處理數(shù)據(jù)庫可以理解的數(shù)據(jù)基于文本格式,以結(jié)構(gòu)化的方式描述各種類型的數(shù)據(jù),并在各種應(yīng)用之間發(fā)送和交換這些數(shù)據(jù)可以在不同的計算機平臺和不同的計算機程序間方便、平穩(wěn)的交換數(shù)據(jù),從而提高了處理數(shù)據(jù)的效率和靈活性——XML的設(shè)計目的1.1.1幾種置標(biāo)語言的發(fā)展關(guān)系XML繼承了SGML的許多特性,它有SGML20%的復(fù)雜性,卻有SGML80%的功能。1.1.2
XML標(biāo)準(zhǔn)1998年2月W3C發(fā)布了XML推薦標(biāo)準(zhǔn)XML1.0。2004年2月4日XML1.1推薦標(biāo)準(zhǔn)正式發(fā)布。但目前推薦遵循的是W3C于2000年10月6日發(fā)布的XML1.0標(biāo)準(zhǔn)。1.2
XML的用途從HTML中分離數(shù)據(jù)。交換數(shù)據(jù)B2B電子商務(wù)共享數(shù)據(jù)存儲數(shù)據(jù)充分利用數(shù)據(jù)創(chuàng)建新的語言
MusicML、MathML、CML、SVG、WML、SMIL等XML是被設(shè)計用來存儲數(shù)據(jù)、攜帶數(shù)據(jù)和交換數(shù)據(jù)的,它不是為了顯示數(shù)據(jù)而設(shè)計的。XML的主要用途包括以下幾個方面。1.3
XML的技術(shù)規(guī)范XML基本規(guī)范(XML1.0、XML1.1)XML關(guān)聯(lián)技術(shù)規(guī)范(DTD、XML命名空間、XMLSchema、XPath、XSL、XSLT、XLink、XPointer、XQuery、DOM、SAX等)XML應(yīng)用規(guī)范(XHTML、SVG、SMIL、MathML、GML、RDDL、XBL、XBRL、RSS等)XML相關(guān)規(guī)范可分為以下3部分來理解1.4一個存儲學(xué)生信息的XML文檔<?xmlversion="1.0"encoding="gb2312"?><roster> <studentID="n101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> <score>92</score> <skill>Java</skill> </student> <studentID="n102"> <name>倪冰</name> <sex>女</sex> <birthday>1979.1.12</birthday> <score>89</score> <skill>VisualBasic</skill> </student> <studentID="n103"> <name>張君寶</name> <sex>男</sex> <birthday>1982.9.9</birthday> <score>98</score> <skill>XML</skill> </student></roster>1.5一個完整的XML實例<?xmlversion="1.0"encoding="UTF-8"standalone="no"?><?xml-stylesheettype="text/xsl"href="show_student.xsl"?><!DOCTYPErosterSYSTEM"student.dtd"><!--此處為注釋信息--><roster> <studentID="n101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> <score>92</score> <skill>此學(xué)生愛好編程,以下是它編的代碼
<![CDATA[ <script> functionf1(a,b){ if(name="cai"&&a<0) {return1} else {return0} } </script> ]]></skill> <skill>VisualBasic&C#</skill> </student></roster>序言文檔元素根元素元素注釋文檔類型聲明XML聲明屬性預(yù)處理指令CDATA實體文本第二部分XML顯示技術(shù):
CSS、XSL、XML數(shù)據(jù)島2.1在XML中使用CSS和XSL例如:<?xml-stylesheettype=“text/css”href=“mystyle.css”?>
表明由mystyle.css決定XML文檔的顯示樣<?xml-stylesheettype="text/xsl"href="mystyle.xsl"?>
表明該XML文檔使用XSL樣式單mystyle.xsl。內(nèi)容與形式相分離使XML文檔更偏重于數(shù)據(jù)本身,而不受顯示方式的細枝末節(jié)的影響。而且通過定義不同的樣式單可以使相同的數(shù)據(jù)呈現(xiàn)出不同的顯示外觀,實現(xiàn)XML數(shù)據(jù)的可重用性。2.1在XML中使用CSS和XSL(續(xù))<?xmlversion="1.0"encoding="gb2312"?><?xml-stylesheettype="text/xsl"href=“student2.1.xsl"?><roster> <studentID="101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> <score>92</score> <skill>Java</skill> </student> …</roster>例student2.1.xml,引入了可擴展樣式單的XML文檔2.1在XML中使用CSS和XSL(續(xù))<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"> <xsl:templatematch="/"> <html> <head> <title>電子商務(wù)班學(xué)生成績單</title> </head> <body> <h2align="center">學(xué)生成績單</h2> <xsl:apply-templatesselect="roster"/> </body> </html> </xsl:template> <xsl:templatematch="roster"> <tableborder="1"cellpadding="0"align="center"> <tr><th>姓名</th><th>性別</th><th>生日</th><th>成績</th></tr> <xsl:for-eachselect="student"> <tr> <td><xsl:value-ofselect="name"/></td> <td><xsl:value-ofselect="sex"/></td> <td><xsl:value-ofselect="birthday"/></td> <td><xsl:value-ofselect="score"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>例student2.1.xsl,上例XML文檔引入的可擴展樣式單文件由兩部分組成:HTML標(biāo)記、
XSL標(biāo)記2.2XML文檔結(jié)構(gòu)樹XSL把XML作為一個存儲數(shù)據(jù)的樹來看待。一個完整的XML文檔可以轉(zhuǎn)換為一個結(jié)構(gòu)完整的結(jié)構(gòu)樹。可以作為結(jié)構(gòu)樹中節(jié)點的是元素、屬性、元素的內(nèi)容文本、處理指令、注釋。DTD聲明可以是結(jié)構(gòu)樹的葉子節(jié)點,實體和記號是DTD節(jié)點的子節(jié)點;結(jié)構(gòu)樹從根節(jié)點開始,用“/”表示。根節(jié)點不是根元素。2.2XML文檔結(jié)構(gòu)樹(續(xù))<?xmlversion="1.0"?><!–fig2.2:simple.xml--><htmlxmlns="/TR"><head><title>usedefaultnamespace</title></head><?deitelprocessorexample="fig2-02.xml"?><body><deitel:book xmlns:deitel=""><deitel:title><![CDATA[xmlhowto]]></deitel:title></deitel:book></body> </html>根節(jié)點注釋Html元素缺省名空間Head元素Title元素文本處理指令Body元素deitel名空間Title元素Book元素XML聲明文本xmlhowto根元素不是根節(jié)點CDATA節(jié)相當(dāng)于文本節(jié)點2.2XML文檔結(jié)構(gòu)樹(續(xù))<?xmlversion="1.0"encoding="gb2312"?><!--這是一個文檔結(jié)構(gòu)樹的例題--><roster> <studentID="101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> </student> <studentID="102"> <name>倪冰</name> <sex>女</sex> <birthday>1979.1.12</birthday> </student></roster>例student2.2.xml,一個存儲學(xué)生數(shù)據(jù)的XML文檔2.2XML文檔結(jié)構(gòu)樹(續(xù))圖2-1
student2.2.xml的XML文檔結(jié)構(gòu)示意圖DocumentCommentnoterootElement<roster>Element<name>Element<sex>Element<birthday>Element<name>Element<sex>Element<birthday>Text李華Text男Text1978.9.12Text倪冰Text女Text1979.1.12AttributeID=“101”Element<student>Element<student>AttributeID=“102”ParentChildSibing2.3數(shù)據(jù)島基本概念XML數(shù)據(jù)顯示技術(shù):CSSXSL數(shù)據(jù)島XSL技術(shù)不是面向數(shù)據(jù)顯示的,它是一種格式轉(zhuǎn)換技術(shù),在顯示手段和方式上都不及HTML那樣豐富。而且XSL的顯示樣式方式最終還是利用了HTML模板進行顯示,只是中間多了一個轉(zhuǎn)換。因此理想的方案是直接利用HTML的方式來顯示XML數(shù)據(jù)。2.3.1數(shù)據(jù)島定義XML數(shù)據(jù)島是指存在于HMTL頁面中的XML數(shù)據(jù),就是使用<XML>標(biāo)記嵌入XML數(shù)據(jù),在HTML文檔中形成的一個XML數(shù)據(jù)島(DataIsland)。數(shù)據(jù)島是一種數(shù)據(jù)顯示技術(shù)。數(shù)據(jù)島也是一種數(shù)據(jù)傳遞技術(shù)。Web服務(wù)器與客戶機之間的數(shù)據(jù)傳遞方式有3種:HTML頁面XML文檔XML數(shù)據(jù)島。XML數(shù)據(jù)島可以減少數(shù)據(jù)庫的壓力,主要是使查詢數(shù)據(jù)庫的用戶不再需要頻繁地訪問服務(wù)器端的數(shù)據(jù)庫,而是訪問客戶端的XML文檔,即提高了查詢速度,也減輕了服務(wù)器端的負擔(dān)。XML數(shù)據(jù)島可利用客戶端腳本實現(xiàn)動態(tài)信息交換。數(shù)據(jù)島技術(shù)不是W3C的推薦標(biāo)準(zhǔn);它是微軟的技術(shù),在InternetExplorer5.0版本以上的瀏覽器中才可使用。2.3.2數(shù)據(jù)島的引入方式HTML文檔有兩種方式引入XML數(shù)據(jù)島:一種是在一個HTML文件中直接嵌入XML文檔數(shù)據(jù),稱為嵌入式。另外一種形式是把XML文件做成一個獨立的文件,在HTML文檔中鏈入該文件中的數(shù)據(jù)。稱為鏈入式。2.3.2數(shù)據(jù)島的引入方式(續(xù))<html> <head><title>圖書列表</title></head> <body> <xmlid="dso"> <?xmlversion="1.0"encoding="GB2312"?> <書> <書名?>redhat?</書名?> <作者>Tom</作者> </書> </xml> <center> <h1>圖書列表</h1> <form>
書名:<inputtype=textdatasrc="#dso"datafld="書名"size=20><br>
作者:<inputtype=textdatasrc="#dso"datafld="作者"size=20> </form> </center> </body></html>可用ID號來引用XML1.嵌入式?jīng)]有實現(xiàn)數(shù)據(jù)和顯示分離,不推薦使用2.3.2數(shù)據(jù)島的引入方式(續(xù))<?xmlversion="1.0"encoding=“GB2312"?> <書> <書名>redhat?</書名> <作者>Tom</作者> </書><html> <head> <title>圖書列表</title> <metahttp-equiv="Content-Type"content="text/html;charset=GB2312"/> </head> <body> <xmlid="xmldso"src="book.xml"/> <center> <h1>圖書列表</h1> <form> 書名:<inputtype=textdatasrc="#xmldso"datafld="書名"
size=20><br> 作者:<inputtype=textdatasrc="#xmldso"datafld="作者"
size=20> </form> </center> </body></html>2.鏈入式XML文檔和HTML文檔都是獨立存在的book.xmlbookLink.html2.3.3數(shù)據(jù)島的數(shù)據(jù)綁定數(shù)據(jù)島對使用者來講是不可見的。設(shè)計人員需要通過把數(shù)據(jù)島的數(shù)據(jù)綁定到HTML元素中,來格式化數(shù)據(jù)以及顯示數(shù)據(jù)。使用數(shù)據(jù)綁定顯示XML的兩個步驟:在HTML文檔中引入XML數(shù)據(jù)島<xmlid=“xmldata”src=“test5-1.xml”/>綁定XML元素到HTML置標(biāo),被綁定的HTML置標(biāo)可以自動顯示XML元素的內(nèi)容。2.3.3數(shù)據(jù)島的數(shù)據(jù)綁定(續(xù))<?xmlversion="1.0"encoding="GB2312"?><書籍>
<書名>計算機網(wǎng)絡(luò)教程</書名>
<作者>謝希仁</作者>
<出版社>人民郵電出版社</出版社></書籍><HTML><HEAD> <title>瀏覽XML數(shù)據(jù)</title> <metahttp-equiv="Content-Type"content="text/html;charset=GB2312"/></HEAD><BODY> <xmlid="xmldata"src=“2-3.xml"></xml> <h2>瀏覽XML數(shù)據(jù)</h2> <span><b>書名:</b></span> <spandatasrc="#xmldata"datafld="書名"></span><br> <span><b>作者:</b></span> <spandatasrc="#xmldata"datafld="作者"></span><br> <span><b>出版社:</b></span> <spandatasrc="#xmldata"datafld="出版社"></span><br></BODY></HTML>2-3.xml2-3.html2.3.3數(shù)據(jù)島的數(shù)據(jù)綁定(續(xù))HTML置標(biāo)作用被綁定的屬性A創(chuàng)建超級鏈接hrefAPPLET在頁面中插主JAVA小應(yīng)用程序paramBUTTON創(chuàng)建按鈕innerHTML,innerTextDIV創(chuàng)建可格式化的部分文檔innerHTML,innerTextFRAME創(chuàng)建框架srcIFRAME創(chuàng)建可浮動框架srcIMG插入圖片srcINPUTTYPE=CHECKBOX創(chuàng)建復(fù)選框checkedINPUTTYPE=RADIO創(chuàng)建單選框checked表2-1能與XML數(shù)據(jù)島綁定的HTML標(biāo)記(1/2)2.3.3數(shù)據(jù)島的數(shù)據(jù)綁定(續(xù))HTML置標(biāo)作用被綁定的屬性INPUTTYPE=HIDDEN創(chuàng)建隱藏控件valueINPUTTYPE=PASSWORD創(chuàng)建口令輸入框valueINPUTTYPE=TEXT創(chuàng)建文本輸入框valueTEXTAREA創(chuàng)建多行文本輸入?yún)^(qū)valueLABEL創(chuàng)建標(biāo)簽innerHTML,innerTextMARQUEE創(chuàng)建滾動文字innerHTML,innerTextSELECT創(chuàng)建下拉列表列表項目SPAN創(chuàng)建格式化的內(nèi)聯(lián)文本innerHTML,innerText表2-1能與XML數(shù)據(jù)島綁定的HTML標(biāo)記(2/2)2.3.3數(shù)據(jù)島的數(shù)據(jù)綁定(續(xù))<?xmlversion="1.0"encoding="gb2312"?><urls> <url1>image1.jpg</url1> <url2>image2.jpg</url2> <url3>image3.jpg</url3></urls><html> <head> <title>利用XML文檔顯示圖片</title> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> </head> <body> <XMLID="xmldata"SRC=“2-4.xml"></XML> 圖片1:<img
datasrc="#xmldata"datafld="url1"> 圖片2:<img
datasrc="#xmldata"datafld="url2"> 圖片3:<img
datasrc="#xmldata"datafld="url3"> </body></html>2-4.xml2-4.html相當(dāng)于<imgsrc=image1.jpg>2.3.4數(shù)據(jù)綁定與DSO對象XMLDSO是一個MicrosoftActiveX控件,嵌入在IE中;DSO對象可從XML中提取數(shù)據(jù),并提供訪問數(shù)據(jù)的方法。注意:要使用DSO,則XML根元素不能具有任何屬性;例:<spandatasrc=“#xmldata”datafld=“書名”/>DSO對象保存了XML文檔的數(shù)據(jù),并提供訪問數(shù)據(jù)的方法2.3.4數(shù)據(jù)綁定與DSO對象(續(xù))DSO對象保存了XML文檔的數(shù)據(jù),它將XML文檔看作是數(shù)據(jù)庫文件。被綁定的XML一般具有三層結(jié)構(gòu)第一層是根元素,相當(dāng)于數(shù)據(jù)表第二層為根元素的子元素,第二層中每個元素具有結(jié)構(gòu)完全相同的子元素,相當(dāng)于數(shù)據(jù)表中的記錄第三層元素相當(dāng)于字段DSO將XML數(shù)據(jù)儲存成記錄集,因此較適用于顯示那些具有對稱性數(shù)據(jù)記錄集結(jié)構(gòu)的XML文件。綁定的方式按照HTML元素的性質(zhì)可分為兩種:單值對象:只能顯示一條記錄的數(shù)據(jù)表格對象:可顯示所有記錄的數(shù)據(jù)數(shù)據(jù)綁定方式<?xmlversion="1.0"encoding="GB2312"?><格言集>
<格言>
<格言內(nèi)容>學(xué)而時習(xí)之,不亦樂乎</格言內(nèi)容>
<格言作者>孔子</格言作者>
</格言>
<格言>
<格言內(nèi)容>天將降大任與斯人也,必先苦其心志</格言內(nèi)容>
<格言作者>孟子</格言作者>
</格言></格言集><html><head><title>數(shù)據(jù)島單值綁定</title></head><body> <xmlid="dos"src=“2-5.xml"></xml> <center> <h1>下面的數(shù)據(jù)是從XML中提取出來的</h1> <p><spandatasrc="#dos"datafld="格言內(nèi)容"></span></p> <p><spandatasrc="#dos"datafld="格言內(nèi)容"></span></p> </center></body></html>單值對象綁定2-5.xml2-5.html始終顯示的是第一條格言的內(nèi)容數(shù)據(jù)綁定方式(續(xù))<html><head><title>表格對象綁定</title></head><body> <xmlid="dos"src=“2-5.xml"></xml> <center> <tabledatasrc="#dos"border="1"width="80%"> <thead> <tr> <th>格言作者</th> <th>格言內(nèi)容</th> </tr></thead><tr> <td><spandatafld="格言作者"></span></td> <td><spandatafld="格言內(nèi)容"></span></td> </tr> </table> </center></body></html>表格對象綁定2-6.html能顯示所有格言的數(shù)據(jù)數(shù)據(jù)綁定方式(續(xù))DSO數(shù)據(jù)源的方法作用調(diào)用方法firstPage顯示第一頁表格id.firstPage()lastPage顯示最后一頁表格id.lastPage()nextPage顯示下一頁表格id.nextPage()previousPage顯示前一頁表格id.previousPage()數(shù)據(jù)綁定:分頁顯示表2-2
TABLE標(biāo)記提供的用于翻頁的方法表格IDTABLE置標(biāo)的datapagesize屬性用于指定一頁可以顯示的記錄條數(shù)數(shù)據(jù)綁定方式(續(xù))例2-7.html,帶表格分頁功能的HTML文檔<body> <xmlid="dos"src=“2-5.xml"></xml> <center> <tabledatasrc="#dos"border="1"width="80%"id="xmltable"datapagesize="3"> <thead> <tr> <th>格言作者</th> <th>格言內(nèi)容</th> </tr> </thead> <tr> <td><spandatafld="格言作者"></span></td> <td><spandatafld="格言內(nèi)容"></span></td> </tr> </table> <buttononclick="xmltable.firstPage()">第一頁</button> <buttononclick="xmltable.previousPage()">前一頁</button> <buttononclick="xmltable.nextPage()">后一頁</button> <buttononclick="xmltable.lastPage()">最后一頁</button> </center></body>綁定多層XML文檔<?xmlversion="1.0"encoding="GB2312"?><網(wǎng)上書屋>
<分類>
<類別>操作系統(tǒng)</類別>
<書籍>
<書名>RedHatLinux系統(tǒng)管理大全</書名>
<作者>ThomasSchenk</作者>
<出版社>機械工業(yè)出版社</出版社>
</書籍>
<書籍>
<書名>中文版WindowsNT技術(shù)支持培訓(xùn)教程</書名>
<作者>Microsoftpress</作者>
<出版社>人民郵電出版社</出版社>
</書籍>
</分類>
…</網(wǎng)上書屋>例2-8.xml,一個四層結(jié)構(gòu)的XML文檔綁定多層XML文檔(續(xù)) <body> <xmlID="xmldata"SRC=“2-8.xml"></xml> <h2align="center">使用嵌套表格顯示的XML文檔內(nèi)容</h2> <tabledatasrc="#xmldata"border="1"align="center"> <tr><td><b><spandatafld="類別"></span>類書籍</b></td></tr> <tr> <td> <tabledatasrc="#xmldata"datafld="書籍"
border="0"align="center"cellpadding="4"> <thead><th>書名</th><th>作者</th><th>出版社</th></thead> <tr> <td><spandatafld="書名"></span></td> <td><spandatafld="作者"></span></td> <td><spandatafld="出版社"></span></td> </tr> </table> </td> </tr> </table> </body>例2-8.html,一個二層嵌套表格的HTML文檔在嵌套表格中,必須指定表格綁定到第三層的“書籍”元素2.3.5
DSO對象對XML文檔的操作(續(xù))DOM結(jié)構(gòu)樹的一些方法、屬性在DSO對象中大都可以使用,例如,dso.documentElement.nodeNamedso.documentElement.childNodesdso.documentElement.appendChilddso.documentElement.createElementDSO對象其他重要的方法:dso.xmldso.url2.3.5
DSO對象對XML文檔的操作(續(xù))<?xmlversion="1.0"encoding="GB2312"?><roster> <studentID="n101"> <name>李華</name> <sex>男</sex> <birthday>1978.9.12</birthday> <score>92</score> <skill>Java</skill> </student> <studentID="n102"> <name>倪冰</name> <sex>女</sex> <birthday>1979.1.12</birthday> <score>89</score> <skill>VisualBasic</skill> </student></roster>例3-29.xml,存儲了學(xué)生數(shù)據(jù)的XML文檔2.3.5
DSO對象對XML文檔的操作(續(xù))<html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/> <title>訪問數(shù)據(jù)島對象</title> </head> <xmlid="dos"src=“2-9.xml"></xml> <body> <scriptlanuage="javascript"> functiona(){ alert(dos.xml);
} functionb(){ alert(dos.url);
}例2-9.html,使用DSO對學(xué)生數(shù)據(jù)進行操作(1/3)2.3.5
DSO對象對XML文檔的操作(續(xù)) functionadd(){ //alert(dos.documentElement); varroot=dos.documentElement root.appendChild(dos.createElement("student")); varnewChild=dos.documentElement.lastChild; newChild.setAttribute("id","new"); varname=dos.createElement("name"); name.appendChild(dos.createTextNode("輸入的姓名")); newChild.appendChild(name); alert(dos.xml);
} functiondele(){ varobj=dos.documentElement.childNodes; varnumber=obj.length; for(vari=0;i<number;i++){dos.documentElement.removeChild(obj.item(0));} alert(dos.xml);
} </script>例2-9.html,使用DSO對學(xué)生數(shù)據(jù)進行操作(2/3)2.3.5
DSO對象對XML文檔的操作(續(xù)) <center> <form> <inputtype="button"value="顯示XML"onClick="a()"> <inputtype="button"value="顯示文件所在路徑"
onClick="b()"> <inputtype="button"value="增加一個學(xué)生數(shù)據(jù)"
onClick="add()"> <inputtype="button"value="刪除所有學(xué)生數(shù)據(jù)"
onClick="dele()"> </form> </body></html>例2-9.html,使用DSO對學(xué)生數(shù)據(jù)進行操作(3/3)2.3.6DSO的ADO記錄集DSO把XML數(shù)據(jù)島作為ADO記錄集(recordset)進行處理,這樣做的好處是可以利用ADO提供的各種方法對數(shù)據(jù)源進行訪問ADO的RecordSet的大部分屬性、方法都可用于DSO對象,常用的屬性有:absolutePage,absolutePosition,BOF,EOF,cacheSize,maxRecords,pageCount,pageSize,recordCount等;常用的方法有:addNew,Delete,getRows,move,moveFirst,moveLast,movePrevious,moveNext,nextPage,previousPage,firstPage,lastPage等。但要注意,并不是所有有關(guān)ADO的都可以搬來使用,如不能直接執(zhí)行SQL語句。2.3.6DSO的ADO記錄集(續(xù))<?xmlversion="1.0"encoding="gb2312"?><網(wǎng)上書屋>
<書籍>
<書名>RedHatLinux系統(tǒng)管理大全</書名>
<作者>ThomasSchenk</作者>
<出版社>機械工業(yè)出版社</出版社>
</書籍>
<書籍>
<書名>中文版WindowsNT技術(shù)支持培訓(xùn)教程</書名>
<作者>MicrosoftPress</作者>
<出版社>人民郵電出版社</出版社>
</書籍> …</網(wǎng)上書屋>例2-10.xml,存儲了書籍?dāng)?shù)據(jù)的XML文檔2.3.6DSO的ADO記錄集(續(xù))<HTMLl>
<HEAD><TITLE>使用腳本查詢XML文檔</TITLE>/HEAD>
<BODY>
<XMLID="xmldata"SRC=“2-10.xml"></XML>
<H2>在線圖書查詢</H2>查詢書名包含的文字:<INPUTTYPE="TEXT"ID="seekstr">
<BUTTONONCLICK='seekbook()'>查詢</BUTTON>
<BR><HR>
<B>查詢結(jié)果:</B><BR><BR>
<SPANID="result"></SPAN>
<SCRIPTTYPE="text/javascript">
functionseekbook(){
varstr=seekstr.value; //接收用戶輸入的查詢關(guān)鍵字
if(str==““){
result.innerHTML="<fontcolor='#ff0000'>你沒有輸入查詢字符串</font>";
return;
}例2-10.html,可查詢書籍信息的HTML文檔(1/2)2.3.6DSO的ADO記錄集(續(xù))
xmldata.recordset.moveFirst(); //返回到第一條記錄,從第一條記錄開始查詢
varresultStr="";
while(!xmldata.recordset.EOF){
bookname=xmldata.recordset("書名").value;
if(bookname.indexOf(str)>=0){ //當(dāng)前書籍名是否包含查詢關(guān)鍵字resultStr+="<tr>”+"<td><b>《"+xmldata.recordset("書名").value+"》</b></td><td>”+xmldata.recordset("作者").value+"</td><td>”+xmldata.recordset("出版社").value+"</td></tr>";}xmldata.recordset.moveNext();
}if(resultStr=="")result.innerHTML="<fontcolor='#ff0000'>未找到滿足條件的書籍</font>";elseresult.innerHTML="<tablecellspacing='10'>"+resultStr+"</table>";
}</SCRIPT></BODY></HTML>例3-30.html,可查詢書籍信息的HTML文檔(2/2)2.3.7動態(tài)選擇XML文檔的顯示樣式XSL樣式單可以控制XML數(shù)據(jù)的顯示樣式,設(shè)計人員可以為同一個XML文檔制定多個XSL顯示樣式,用戶可以根據(jù)自己的愛好來選擇顯示樣式。在XML文檔中通過
<?xml-stylesheet
href=“樣式單URL”
type=“樣式單MIME類型”?>
處理指令來指定樣式單,是一種靜態(tài)方法,樣式單一旦指定就不方便修改。通過DSO對象可以動態(tài)為XML文檔指定顯示樣式。2.3.7動態(tài)選擇XML文檔的顯示樣式(續(xù))list.xsl
為xml文檔設(shè)計的列表樣式文檔table.xsl
為xml文檔設(shè)計的表格樣式文檔DSO_XSL.html
為XML文檔動態(tài)指定樣式單的HTML文檔2-10.xml動態(tài)指定樣式單例題中幾個文檔的關(guān)系圖2.3.7動態(tài)選擇XML文檔的顯示樣式(續(xù))<?xmlversion="1.0"encoding="gb2312"?><xsl:stylesheetversion="1.0"xmlns:xsl="/1999/XSL/Transform"xmlns:fo="/1999/XSL/Format"> <xsl:templatematch="/"> <html> <head><title>網(wǎng)上書屋</title></head> <body><xsl:apply-templates/></body> </html> </xsl:template> <xsl:templatematch="網(wǎng)上書屋"> <h1>阿當(dāng)網(wǎng)上書屋</h1> <ol><xsl:apply-templates/></ol> </xsl:template> <xsl:templatematch="書籍"> <li><b><xsl:value-ofselect="書名"/></b></li> <br/>作者:<xs
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球七葉神安片行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球醫(yī)療器械消毒產(chǎn)品行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國缺氧帳篷行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國有機空穴傳輸材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球連續(xù)式鋰電池?zé)峤鉅t行業(yè)調(diào)研及趨勢分析報告
- 競業(yè)限制合同協(xié)議書
- 家具房屋租賃合同書
- 2025危險廢物委托處置合同
- 房地產(chǎn)借款合同
- 提高談判技巧的訓(xùn)練課程
- 國有資產(chǎn)管理法律責(zé)任與風(fēng)險防控
- 未婚生子的分手協(xié)議書
- 變更監(jiān)事章程修正案范例
- 北京小客車指標(biāo)租賃協(xié)議五篇
- 輸液室運用PDCA降低靜脈輸液患者外滲的發(fā)生率品管圈(QCC)活動成果
- YY/T 0681.2-2010無菌醫(yī)療器械包裝試驗方法第2部分:軟性屏障材料的密封強度
- GB/T 20472-2006硫鋁酸鹽水泥
- 煙氣管道阻力計算
- 城鄉(xiāng)環(huán)衛(wèi)一體化保潔服務(wù)迎接重大節(jié)日、活動的保障措施
- 醫(yī)院-9S管理共88張課件
- 高考作文復(fù)習(xí):議論文論證方法課件15張
評論
0/150
提交評論