freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[理學]第五章xslt(編輯修改稿)

2025-01-19 12:37 本頁面
 

【文章內容簡介】 ? XML數(shù)據(jù)示例: books book category=TP18 title人工智能及其應用 /title … … publisher ref=qinhua 清華大學出版社 /publisher price/price /book …. publishers publish id=qinhua name清華大學出版社 /name … … /publish … ... /publishers /books ? 屬性 ref和 id指出兩個元素之間的關聯(lián)。 ? 相應的 XSLT模板: xsl:template match=book p標題: 《 xsl:valueof select=title /》 , 類別: xsl:valueof select=@category //p p作者: xsl:applytemplates select=authors //p xsl:applytemplates select=id(publisher/@ref) / /xsl:template xsl:template match=publish p出版社: xsl:valueof select=name /, 電話: xsl:valueof select=telephone //p p地址: xsl:valueof select=―addr‖ /, 郵編: xsl:valueof select=zipcode //p /xsl:template ? 其中用到了 XPath的函數(shù) id()(參見第四章 )。 id()函數(shù)的功能是返回一個結點,這個結點有 ID屬性,并且 ID值等于參數(shù)值。 2.不同文檔的引用 ? 現(xiàn)在假如將關于出版社的信息存儲于另一個文檔。我們注意到,事實上按照出版社名稱就可以讓書籍數(shù)據(jù)引用出版社數(shù)據(jù),沒有必要使用 ID和IDREF屬性。 ? 按照出版社名稱引用最簡單的方法是使用謂詞,例如,如果書籍信息和出版社信息在同一個文件中,則可以在 book模板中這樣調用 publish模板: xsl:variable name=x select=publisher / xsl:applytemplates select=//publish[name=$x] / ? 但這樣每次都要掃描所有的 publish結點,從中過濾出所需的結點,效率太低。 ? 利用 XSLT的 xsl:key,我們可以為每個 publish結點建立唯一的索引鍵( key),然后按索引鍵匹配引用即可。 ? xsl:key的定義為: xsl:key name=qname match=pattern use=expression / ? 每一個索引鍵具有形如“ 鍵名 =鍵值 ‖的形式,qname指定鍵名, pattern指定對哪些結點設置索引鍵,pattern是一個結點集,可以用 XPath表達式指定這個結點集。 expression指出用什么數(shù)據(jù)作為鍵值, expression是一個 XPath表達式,對表達式的運算結果將轉換為字符串作為鍵值。 ? xsl:key為 pattern指定的結點集中的每個結點建立一個索引鍵,每個索引鍵的鍵名都是 qname指定的名稱,但鍵值則各自由 expression的計算結果決定。 ? 例如,我們可以用如下標記為每個 publish結點建立索引鍵,并指定每個索引鍵的鍵值就是其中的子結點 name的字符串值: xsl:key name=pub match=//publish use=name / 從而為每個 publish元素建立索引鍵: pub=清華大學出版社 , pub=機械工業(yè)出版社 ,等等。 ? 定義了索引鍵之后,就可以利用 key()函數(shù)獲得對應的結點。 ? key()函數(shù)的定義為: Function nodeset key(string, object) ? 其中參數(shù) string是要使用的索引鍵的鍵名, object指定鍵值。 object可以是 XPath表達式指定的結點,結點的字符串值作為鍵值。函數(shù)返回具有參數(shù)string指定的索引鍵、并且鍵值與參數(shù) object指定的鍵值相同的結點,這樣的結點可能不止一個,因此函數(shù)的運算結果是一個結點集。 ? 在處理 book的模板中,我們可以用key(?pub‘,publisher)得到對應的 publish結點,這個結點的子結點 name和結點 publisher有相同的字符串值(即包含相同內容的文字結點)。 ? 【 例 8】 使用附錄 1的 ,另外建立一個。 ? : publishers publish name清華大學出版社 /name addr北京清華大學學研大廈 /addr zipcode100084/zipcode telephone01062770175/telephone /publish … … /publishers 一個應用于 : xsl:stylesheet version=― xmlns:xsl= xsl:key name=pub match=//publish use=name / xsl:template match=book … … xsl:variable name=x select=publisher / xsl:foreach select=document(39。39。) xsl:applytemplates select=key(39。pub39。,$x) / /xsl:foreach /xsl:template xsl:template match=publish … … /xsl:template … … /xsl:stylesheet ? 現(xiàn)在 publish元素是在另一個文檔中,因此首先必須解析文檔 ,生成對應的結點樹以便處理。 ? 為此調用函數(shù) document(),這個函數(shù)的參數(shù)是 xml文檔的URL,函數(shù)將按照這個 URL獲得文檔并進行解析,從而產生文檔的結點樹。 ? 在 book結點的模板中,我們定義了變量 xsl:variable name=x select=publisher / ? 在 document(?‘) 得到的樹中,我們用 xsl:applytemplates select=key(39。pub39。,$x) / 指定應用模板的結點 publish。 ? 需要使用變量是因為,在 document(?‘) 得到的樹中,當前結點已變成 ,并且我們無法在一個文檔樹中引用另一棵文檔樹中的結點。 六、多文檔轉換 ? 可以用多個樣式表合成一個樣式表,然后對 XML文檔進行轉換。 ? 也可以多個 XML文檔合成一個 XML文檔,然后利用樣式表進行轉換。 1.使用多個 xsl文件 ? 一個樣式表可以引入另外一些樣式表所定義的內容。 ? 引入可以采用兩種 XSLT指令: xsl:include和xsl:import。這兩條指令的定義是: xsl:include href = urireference / xsl:import href = urireference / ? 其中 urireference是所要引入的樣式表文件的 URI。這兩條指令都是頂層指令,即它們只能作為樣式表中 xsl:stylesheet的子元素。 ? xsl:include將引入的樣式表中根元素之后的所有內容放置到這條指令所在的位置上。 ? 例如,樣式表文件 xsl:include引入: ! xsl:style
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1