我有以下XML(部分)文件:如何僅將XSL模板應用於包含具有特定屬性值和元素值的子元素的元素?
<export>
<table name="CLIENT">
<row>
<col name="CODE_CLIENT" type="System.String">1000010026</col>
<col name="LIBELLE" type="System.String">Test|</col>
<col name="PROSPECT" type="System.Decimal">1</col>
</row>
<row>
<col name="CODE_CLIENT" type="System.String">1000010025</col>
<col name="LIBELLE" type="System.String">Rue de la 2eme ad|</col>
<col name="PROSPECT" type="System.Decimal">0</col>
</row>
<row>
<col name="CODE_CLIENT" type="System.String">1000010125</col>
<col name="LIBELLE" type="System.String">Test4</col>
<col name="PROSPECT" type="System.Decimal">0</col>
</row>
<row>
<col name="CODE_CLIENT" type="System.String">1000010035</col>
<col name="LIBELLE" type="System.String">Rue</col>
<col name="PROSPECT" type="System.Decimal">1</col>
</row>
</table></export>
和以下XSL:
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="export/table[@name='CLIENT']"/>
</xsl:template>
<xsl:template match="row">
SOME TEMPLATE CODE
</xsl:template>
</xsl:stylesheet>
我想申請的第一個模板(匹配= 「/」)只對「行「前景值爲1.在我的例子中,只會變換第一行和最後一行。
我試圖
<xsl:apply-templates select="export/table[@name='CLIENT']/row[col[@name='PROSPECT']=1]"/>
但給了我一個語法錯誤。
任何人都知道如何進行?
Tomalak,謝謝你的回答。我嘗試了你的建議,並且發現了與我的版本相同的錯誤: ']'required,'@'found(來自法語翻譯) :-( – Jalil 2009-08-24 15:29:39
Tomalak,對不起,我沒有嘗試過你的解決方案但直接: –
Jalil
2009-08-24 15:31:48
順便說一下,請告訴您正在使用的XSLT處理器。 – Tomalak 2009-08-24 15:53:32