2016-04-22 5 views
0

私はさまざまな方法で試しましたが、間違いを理解することができませんでした。属性の値を設定するには2つのチェックが必要です。次の例は単純なバージョンです。チェックイン中に動作しませんXsl

入力XML

`

<Detail Type="3242432" LastDate="2016-04-22T11:02:43+01:00" 
    NodName="10001" 
    UpdateValueReason="Apple: 123 56" 
    Date="2016-04-22T11:02:43+01:00"> 
    <Sub EventID="2"> 
</Detail> 

`

XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

    <xsl:template match="/Detail/Sub"> 
     <Status> 
     <xsl:attribute name="StatusType"> 
     <xsl:choose> 
     <xsl:when test="../starts-with(@UpdateValueReason, 'Apple') and @EventID='2'"> 
        <xsl:value-of select="'23'" /> 
       </xsl:when> 

       <xsl:otherwise> 
        <xsl:value-of select="'1234'" /> 
       </xsl:otherwise> 
       </xsl:choose> 
     </xsl:attribute> 
     </Status> 
    </xsl:template> 
</xsl:stylesheet> 

属性はchar型のIの特定のセットで始まる場合、ここで私がチェックしています

ERROR::説明:ここに期待NodeTestでは、コンロ

エラーで実行中にエラーに

エラーを別の属性をスタンプが、その投げています。 < ../-->starts-with

- (UpdateValueReason @ 'アップル')と@イベントID = '2'

+3

しばしばエラーメッセージが有用な情報を与えるようあなたは、エラーが何であるかを言うためにあなたの質問を編集する必要があります。ありがとうございました。 –

答えて

2

あなたの現在の構文は、XSLT 2.0で動作しますが、1.0をXSLTではないでしょう。

は、XSLT 1.0の代わりにこれを試してみてください:

<xsl:when test="starts-with(../@UpdateValueReason, 'Apple') and @EventID='2'"> 
関連する問題