靈魂-放水

          為學日益,為道日損。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

          公告

          在讀書目更新ing:

          想讀書目更新ing:

          常用鏈接

          留言簿(24)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Favorite Sports

          My Favorite sites

          博客-同享

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          ??????? XSL 將屬性視為屬于XML 文件中的一個元素,好像是XML 文件中的子元素。然而,要在XSL樣本中讀取屬性,你必須在屬性名稱前加上字符@,作為屬性名稱與元素名稱的識別。
          ?????? 例如,在下列起始標簽中的篩選運算子從所有BOOK 元素,篩選出屬性InStock 的屬性值為「yes」的BOOK 元素。換句話說,篩選運算子篩選出有庫存的書籍:
          ????????????? <xsl:for-each select="INVENTORY/BOOK [@InStock=yes]">
          ???????你可以使用XSL 元素value-of,如同使用它來擷取元素的文字內容的方式一般,來擷取任何屬性的屬性值。例如下列所示,value-of 元素得到AUTHOR 元素中Born 屬性的屬性值:?????????????
          ????????????? <xsl:value-of select="AUTHOR/@Born"/>

          ?????? 在列表10-8 中的樣式表,示范了存取XML 文件中元素屬性值的技巧。這份樣式表被連結到列表10-9 中的XML文件,并顯示書籍清單中所有庫存有的書籍。(你可以在隨書光盤的 XslDemo06.xsl 和 XslDemo06.xml 檔案中找到。)
          ????????????? XslDemo06.xsl
          ????????????? <?xml version="1.0"?>
          ????????????? <!--File Name:XslDemo06.xsl -->
          ????????????? <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
          ????????????? <xsl:template match="/">
          ????????????? <H2>Books In Stock</H2>
          ????????????? <TABLE BORDER="1" CELLPADDING="5">
          ????????????? <THEAD>
          ????????????? <TH>Title</TH>
          ????????????? <TH>Author</TH>
          ????????????? <TH>Binding Type</TH>
          ????????????? <TH>Number of Pages</TH>
          ????????????? <TH>Price</TH>
          ????????????? </THEAD>
          ????????????? <xsl:for-each select="INVENTORY/BOOK
          ????????????? [@InStock=yes]">
          ????????????? <TR ALIGN="CENTER">
          ????????????? <TD>
          ????????????? <xsl:value-of
          ????????????? select="TITLE"/>
          ????????????? </TD>
          ????????????? <TD>
          ????????????? <xsl:value-of
          ????????????? select="AUTHOR"/><BR/>
          ????????????? (born <xsl:value-of
          ????????????? select="AUTHOR/@Born"/>)
          ????????????? </TD>
          ????????????? <TD>
          ????????????? <xsl:value-of
          ????????????? select="BINDING"/>
          ????????????? </TD>
          ????????????? <TD>
          ????????????? <xsl:value-of
          ????????????? select="PAGES"/>
          ????????????? </TD>
          ????????????? <TD>
          ????????????? <xsl:value-of
          ????????????? select="PRICE"/>
          ????????????? </TD>
          ????????????? </TR>
          ????????????? </xsl:for-each>
          ????????????? </TABLE>
          ????????????? </xsl:template>
          ????????????? </xsl:stylesheet>
          ?????????????
          ????????????? XslDemo06.xml
          ????????????? <?xml version="1.0"?>
          ????????????? <!--File Name:XslDemo06.xml-->
          ????????????? <?xml-stylesheet type="text/xsl" href="XslDemo06.xsl"?>
          ????????????? <INVENTORY>
          ????????????? <BOOK InStock="yes">
          ????????????? <TITLE>The Adventures of Huckleberry Finn</TITLE>
          ????????????? <AUTHOR Born="1835">Mark Twain</AUTHOR>
          ????????????? <BINDING>mass market paperback</BINDING>
          ????????????? <PAGES>298</PAGES>
          ????????????? <PRICE>$5.49</PRICE>
          ????????????? </BOOK>
          ????????????? <BOOK InStock="no">
          ????????????? <TITLE>Leaves of Grass</TITLE>
          ????????????? <AUTHOR Born="1819">Walt Whitman</AUTHOR>
          ????????????? <BINDING>hardcover</BINDING>
          ????????????? <PAGES>462</PAGES>
          ????????????? <PRICE>$7.75</PRICE>
          ????????????? </BOOK>
          ????????????? <BOOK InStock="yes">
          ????????????? <TITLE>The Marble Faun</TITLE>
          ????????????? <AUTHOR Born="1804">Nathaniel Hawthorne</AUTHOR>
          ????????????? <BINDING>trade paperback</BINDING>
          ????????????? <PAGES>473</PAGES>
          ????????????? <PRICE>$10.95</PRICE>
          ????????????? </BOOK>
          ????????????? <BOOK InStock="yes">
          ????????????? <TITLE>Moby-Dick</TITLE>
          ????????????? <AUTHOR Born="1819">Herman Melville</AUTHOR>
          ????????????? <BINDING>hardcover</BINDING>
          ????????????? <PAGES>724</PAGES>
          ????????????? <PRICE>$9.95</PRICE>
          ????????????? </BOOK>
          ????????????? </INVENTORY>
          ????????在XML 文件中的每個BOOK 元素,皆包含InStock 屬性,藉由設定屬性值為「yes」或「no」 來指定此書籍是否有庫存。每個AUTHOR 元素使用Born 屬性來指出作者的出生年份。?????????????
          ??????? 樣式表使用篩選運算子中的屬性,來從樣式表所顯示的BOOK 元素集合中排除所有缺貨的書籍,而不是顯示屬性InStock 的屬性值:
          <xsl:for-each select="INVENTORY/BOOK [@InStock=yes]">
          <!--display each BOOK element-->
          </xsl:for-each>
          ??????? 此樣式表將BOOK 元素顯示于HTML 的表格中,而不是在先前范例的SPAN 元素中。它利用XSL 元素value-of 將Born 屬性的屬性值顯示于AUTHOR 元素的值之后。下列的元素會建立顯示這些屬性值的表格:
          <TD>
          <xsl:value-of select="AUTHOR"/><BR/>
          (born <xsl:value-of select="AUTHOR/@Born"/>)
          </TD>
          posted on 2006-04-17 00:14 放水老倌 閱讀(1539) 評論(2)  編輯  收藏 所屬分類: XML

          Feedback

          # re: [轉]XSLT與XML的屬性 2007-06-19 22:41 RunUpwind
          我是個初學者,剛才測試了代碼,發現
          <xsl:for-each select="INVENTORY/BOOK [@InStock=yes]">

          <xsl:for-each select="INVENTORY/BOOK [@InStock='yes']">
          結果不同。
          不知博主是否試過。  回復  更多評論
            

          # re: [轉]XSLT與XML的屬性 2007-06-20 14:12 放水老倌
          沒試過。  回復  更多評論
            

          主站蜘蛛池模板: 库伦旗| 布尔津县| 富民县| 南江县| 建平县| 邛崃市| 桓仁| 荥阳市| 龙胜| 玛纳斯县| 宜兴市| 新巴尔虎右旗| 苍梧县| 荣昌县| 瓮安县| 贵州省| 楚雄市| 蓬溪县| 宜黄县| 井研县| 绥棱县| 军事| 平武县| 遂昌县| 新泰市| 顺昌县| 贺兰县| 汉川市| 邢台县| 汝州市| 嘉峪关市| 济源市| 马龙县| 射阳县| 监利县| 祁阳县| 宜良县| 华坪县| 师宗县| 清镇市| 弥勒县|