曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<HR></HR>
Copyright 1999
<A HREF="http://www.macfaq.com/personal.html">
Elliotte Rusty Harold
</A>
<BR />
XML 實用大全
第 116 頁
<A HREF="mailto:elharo@metalab.unc.edu">
elharo@metalab.unc.edu
</A>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
5.4.6 區分投手與擊球手
可以注意到圖5-8 中的一個缺點是沒有正確處理投手。貫穿本章和第4 章,投手是用完全不同的統計數字集表示的,無論他
們的統計數據是存儲在元素內容中還是屬性中。因此,投手確實需要一個表格以區別于其他隊員。在把隊員放入表格之前必
須查看他是不是投手。如果隊員的POSITION 屬性包含“pitcher”就忽略他。然后在只包含投手隊員元素的第二個表格中反
轉上面的過程,投手的PLAYER 元素中POSITION 屬性值是字符串“pitcher”。
要完成這些還必須給xsl:for-each 增加另外的選擇隊員的代碼。我們不需要選擇所有隊員,相反只需要選擇那些POSITION
屬性不是投手的隊員,句法如下:
<xsl:for-each select="PLAYER [(@POSITION != Pitcher )">
因為XML 文檔對首發投手和替補投手做了區分,正確的答案應該檢查這兩種情況:
<xsl:for-each select="PLAYER [(@POSITION != StartingPitcher )
$and$(@POSITION != Relief Pitcher )]">
圖5-8 采用清單5-6 的XSL 樣式單后隊員統計的顯示情況
XML 實用大全
第 117 頁
關于投手的清單,只需要把Staring Pitcher 或者Relief Pitcher 前的不等號變為等號。(僅僅把不等號改為等號是不能
滿足的,同時必須把and 改為or。)句法如下:
<xsl:for-each select="PLAYER[(@POSITION= Starting Pitcher )
$or$(@POSITION= Relief Pitcher )]">
與C 或JAVA 語言不同,這里比較相等只用一個等號而不是雙等號,因為XSL 中沒有賦值操作。
清單5-7 顯示的XSL 樣式單把投手和擊球手區分在兩個不同的表格中,投手表格為所有投手添加了常規統計項目。清單5-1
將這些項目編碼在以下屬性中:wins(投中)、losses(失球)、saves(救球)、shutouts(被封殺)等等。相應省略了
一些列標簽以保持表格預定的寬度。圖5-9 顯示了最后的結果。
圖5-9 采用清單5-7 的XSL 樣式單能夠區分投手和擊球手
清單5-7:區分投手和擊球手的樣式單
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>
<xsl:for-each select="SEASON">
XML 實用大全
第 118 頁
<xsl:value-of select="@YEAR"/>
</xsl:for-each>
Major League Baseball Statistics
</TITLE>
</HEAD>
<BODY>
<xsl:for-each select="SEASON">
<H1>
<xsl:value-of select="@YEAR"/>
Major League Baseball Statistics
</H1>
<xsl:for-each select="LEAGUE">
<H2 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H2>
<xsl:for-each select="DIVISION">
<H3 ALIGN="CENTER">
<xsl:value-of select="@NAME"/>
</H3>
<xsl:for-each select="TEAM">
<H4 ALIGN="CENTER">
<xsl:value-of select="@CITY"/>
<xsl:value-of select="@NAME"/>
</H4>
XML 實用大全
第 119 頁
<TABLE>
<CAPTION><B>Batters</B></CAPTION>
<THEAD>
<TR>
<TH>Player</TH><TH>P</TH><TH>G</TH>
<TH>GS</TH><TH>AB</TH><TH>R</TH><TH>H</TH>
<TH>D</TH><TH>T</TH><TH>HR</TH><TH>RBI</TH>
<TH>S</TH><TH>CS</TH><TH>SH</TH><TH>SF</TH>
<TH>E</TH><TH>BB</TH><TH>SO</TH>
<TH>HBP</TH>
</TR>
</THEAD>
<TBODY>
<xsl:for-each select="PLAYER [(@POSITION
!= Starting Pitcher )
$and$(@POSITION != Relief Pitcher )]">
<TR>
<TD>
<xsl:value-of select="@GIVEN_NAME"/>
<xsl:value-of select="@SURNAME"/>
</TD>
<TD><xsl:value-of select="@POSITION"/></TD>
<TD><xsl:value-of select="@GAMES"/></TD>
<TD>
<xsl:value-of select="@GAMES_STARTED"/>
XML 實用大全
第 120 頁
</TD>
<TD><xsl:value-of select="@AT_BATS"/></TD>
<TD><xsl:value-of select="@RUNS"/></TD>
<TD><xsl:value-of select="@HITS"/></TD>
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(38)