3

次の例に示すように、テンプレート マッチの一部としてワイルドカードを受け入れる xsl テンプレートを作成しようとしています。

<xsl:template match="*_Nokia_5.0">
  <xsl:value-of select="."/>
  <xsl:text>,</xsl:text>
  <xsl:if test="position()=last()">
    <xsl:text>&#10;</xsl:text>
  </xsl:if>

私が達成しようとしているのは、「文字列の一部として「Nokia_5.0」を含むタグに一致することです。xslt 1.0 でこれを行う方法はありますか?

ありがとう

4

2 に答える 2

3

contains(name(), "Nokia_5.0")次のような名前では誤検知が返されるため、使用は解決策ではありません。

myNokia_5.0isAwsome

ただし、要件は、名前が文字列で終わる'Nokia_5.0'必要があることです。


正しい解決策

XSLT 2.0の場合

<xsl:template match="*[ends-with(name(), 'Nokia_5.0')]">

XSLT 1.0の場合

<xsl:template match=
 "*[substring(name(), string-length(name()) -8) = 'Nokia_5.0')]">
于 2012-06-14T12:06:07.967 に答える