XSL変換にはかなり新しいですが、数時間にわたってスタックオーバーフローを検索しています。 xslスタイルシートを使ってテーブルに入れたいxml文書がありますが、ノードの値に基づいてXMLの特定の部分だけを選択したいと考えています。ここに私のXMLです:条件に基づいてフィルタリングするためにXSLを使用してテーブルにデータを挿入する
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="guitarsXSLStyleSheet.xsl" type="text/xsl"?>
<guitars>
<guitar>
<model>Strat</model>
<year>1978</year>
<price>2500</price>
</guitar>
<guitar>
<model>Jaguar</model>
<year>2006</year>
<price>400</price>
</guitar>
<guitar>
<model>Strat</model>
<year>2015</year>
<price>900</price>
</guitar>
<guitar>
<model>Tele</model>
<year>1981</year>
<price>1200</price>
</guitar>
</guitars>
は今、私はテーブルにこのすべてを出力XSLスタイルシートを、持っている:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<table id="guitarTable" border="1" width="200">
<tr class="header">
<th>Model</th>
<th>Year</th>
<th>Price</th>
</tr>
<xsl:apply-templates select="//guitar"/>
</table>
</xsl:template>
<xsl:template match="guitar">
<tr>
<td> <xsl:value-of select="model" /> </td>
<td> <xsl:value-of select="year" /> </td>
<td> <xsl:value-of select="price" /> </td>
</tr>
</xsl:template>
</xsl:stylesheet>
さて、私が唯一、すべて表示されるでしょうテーブルを生成しようとしているとしましょうストラットのための列、しかしストラットのみ。どうすればいい?
は、私は多分<td> <xsl:value-of select="model" /> </td>
<td> <xsl:value-of select="model[text()='Strat']" /> </td>
それはトリックでした、ありがとう。私は間違いなくチュートリアルを読んでいましたが、手をつけても、これを挿入してテーブルに貼り付けることはできませんでした。クイックフォローアップは、これを部分的に一致させるだけで動作させる方法はありますか?そのような: ' ' –
NateH06