曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
<xsl:value-of select=”ATOMIC_NUMBER”/>
</td>
</tr>
</xsl:template>
如果某個元素使用一個以上的特性集合,那么,就將所有集合的所有特性應用于該元素。如果一個以上的特性集合使用不同
的值定義相同的特性,那么就使用較為重要集合的特性。重要性相同的多個特性集合定義相同的特性,那么此樣式單就會出
現錯誤。
14.9.5 使用xsl:pi 生成處理指令
xsl:pi 元素將指令放在輸出文檔中。處理指令的目標由所需的name 特性指定。xsl:pi 元素的內容成為處理指令的內容。例
如,下面的規則將PROGRAM 元素用gcc 處理指令代替:
<xsl:template select="PROGRAM">
<xsl:pi name="gcc"> -04</xsl:pi>
</xsl:template>
輸入文檔中的PROGRAM 元素由輸出文檔中的下面的處理指令所代替:
<?gcc -04?>
若這些指令的結果為純文本,那么xsl:pi 元素的內容可包括xsl:value-of 元素和xsl:apply-templates 元素。例如,
<xsl:template select="PROGRAM">
<xsl:pi name="gcc">-04 <xsl:value-of select="NAME"/></xsl:pi>
</xsl:template>
xsl:pi 的最常用的用途之一,就是當從XML 生成XML 時,用來插入XML 聲明(盡管XML 聲明在技術上并不是處理指令)。
例如:
XML 實用大全
第 502 頁
<xsl:pi name="xml">version="1.0" standalone="yes"</xsl:pi>
xsl:pi 元素不能包括xsl:element 和在結果中產生元素和特性的其他指令。此外,它還不能包括在輸出文檔中插入?>的任
何指令和文字文本,因為這會使處理指令提前結束。
14.9.6 使用xsl:comment 生成注釋
xsl:comment 元素在輸出文檔中插入注釋。它沒有特性。其內容為注釋文本。例如,
<xsl:template select=”ATOM”>
<xsl:comment>There was an atom here once.</xsl:comment>
</xsl:template>
此規則使用下面的輸出代替ATOM 節點:
<!-There was an atom here once.->
如果xsl:value-of 元素和xsl:apply-templates 元素指令的結果是純文本的話,那么xsl:comment 元素的內容可包括這些
元素。它不能包括xsl:element 以及在結果中產生元素和特性的其他指令。此外,xsl:comment 還不能包括在注釋中插入雙
連字號的任何指令或文字文本。這樣在輸出文檔中會使注釋很難看,這種情況是不允許的。
14.9.7 使用xsl:text 生成文本
xsl:text 元素將其內容作為文字文本插入到輸出文檔中。例如,下面的規則將每個ATOM 元素用字符串“There was an atom
here once”代替。
<xsl:template select="ATOM">
<xsl:text>There was an atom here once.</xsl:text>
</xsl:template>
xsl:text 元素用得不多,這是因為在多數情況下,鍵入文本更容易。但是,xsl:text 的確有一個優點。它可以準確地保留
空白。當處理詩句、計算機源代碼或空白顯示具有重要意義的其他信息時,使用xsl:text 是很有用的。
XML 實用大全
第 503 頁
14.10 使用xsl:copy 復制當前節點
xsl:copy 元素將源代碼復制到輸出文檔中。子元素、特性和其他內容不會自動復制。但是,xsl:copy 元素的內容也是選擇
要復制這些內容的xsl:template 元素。當將文檔從某個標記符號集轉換成相同的或相近的相關標記符號集時,這種方法通
常是有用的。例如,下面的模板規則刪除原子的特性和子元素,并用其內容值來代替:
<xsl:template match=”ATOM”>
< xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
xsl:copy 使模板具有的用途之一就是恒等轉換;也就是說,可將一文檔轉換成本身。這種轉換與下面類似:
<xsl:templdte match=”*|@*|comment()|pi()|text()”>
< xsl:copy>
<xsl:apply-templates select=”*|@*|comment()|pi()|text()”/>
</xsl:copy>
</xsl:template>
可對恒等轉換進行稍微調節,以產生相似的文檔。例如,清單14-15 是一樣式單,它可去掉文檔中的注釋而文檔的其他部分
不受影響。在恒等轉換中,去掉comment()節點的match 和select 特性值,而保留此節點的其他部分就可以產生這種結果。
清單14-15:從文檔中刪除注釋的XSL 樣式單
<?xml version=”1.0”?>
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/XSL/Transform/1.0”>
<xsl:template match=”* | @* | pi() | text()”>
< xsl:copy>
<xsl:apply-templates select=”* | @* | pi() | text()”/>
</xsl:copy>
</xsl:template>
XML 實用大全
第 504 頁
</xsl:stylesheet>
xsl:copy 只復制源節點。使用xsl:copy-of,可以復制其他節點,可能不止一個。xsl:copy-of 的select 特性選擇要復制
的節點。例如,清單14-16 是一樣式單,它使用xsl:copy-of,只復制有MELTING_POINT 子元素的ATOM 元素,從而將沒有
熔點的元素從周期表中去掉。
清單14-16:只復制有MELTING_POINT 子元素的ATOM 元素的樣式單
<?xml version=”1.0”?>
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/XSL/Transform/1.0”>
<xsl:template match=”/PERIODIC_TABLE”>
<PERIODIC_TABLE>
<xsl:apply-templates select=”ATOM”/>
</PERIODIC_TABLE>
</xsl:template>
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(142)