この XML を考えると、「test」と「name」の値を与える xpath はありますか?

StackOverflow https://stackoverflow.com/questions/97474

  •  01-07-2019
  •  | 
  •  

質問

xsl:when タグの「test」属性の値と、xsl:call-template タグの「name」属性の値を取得する必要があります。この xpath はかなり近いものになります。

..../xsl:template/xsl:choose/xsl:when

ただし、これは必要な正確な属性値ではなく、「when」要素を返すだけです。

これが私の XML のスニペットです。

<xsl:template match="field">
    <xsl:choose>
    <xsl:when test="@name='First Name'">
        <xsl:call-template name="handleColumn_1" /> 
    </xsl:when>
</xsl:choose>
役に立ちましたか?

解決

スティーブ・クーパーが最初の部分に答えました。2 番目の部分では、以下を使用できます。

.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name

これは、上記のスニペットの xsl:when に特に一致します。全体的に一致させたい場合は、以下を使用できます。

.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name

他のヒント

欲しいですか .../xsl:template/xsl:choose/xsl:when/@test

実際にテスト属性から値 'First Name' を取得したい場合は、運が悪いです。属性内のコンテンツは単なる文字列であり、XML の一部ではないため、XPath することはできません。 。それを取得する必要がある場合は、文字列操作 (部分文字列など) を使用して正しいコンテンツを取得する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top