靈魂-放水

          為學日益,為道日損。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks
          ??????? 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 放水老倌
          沒試過。  回復  更多評論
            

          主站蜘蛛池模板: 固始县| 乐安县| 白山市| 沭阳县| 二连浩特市| 开阳县| 美姑县| 鄂伦春自治旗| 张家口市| 江北区| 海淀区| 什邡市| 平凉市| 柳林县| 宣恩县| 峨眉山市| 嵩明县| 凤台县| 临邑县| 宜兴市| 胶南市| 霍邱县| 苗栗市| 大方县| 新田县| 徐汇区| 麟游县| 龙岩市| 西丰县| 如皋市| 积石山| 盐津县| 沁水县| 泸州市| 长乐市| 鄄城县| 安仁县| 巴南区| 陆河县| 贡山| 启东市|