2012-05-10 18 views
1

フィールドの特定の値に応じて変数を設定します。 <xsl:choose>の内部では、次のコードは完璧に動作します:文字列のアンパサンドをどのようにテストすればよいですか?

<xsl:when test="property_type='hotel'">47</xsl:when> 

しかし、私は今、このような "B & B" などの文字列をチェックする必要があります与え、

<xsl:when test="property_type='b&b'">48</xsl:when> 

これは失敗します。

transform.xsltの行42列のエラー:SXXP0003:エラー がXMLパーサーによって報告されました:エンティティ "b"への参照は、 ';'デリミタ。

私はエラーを理解していますが、どのようにラウンドを取得するのか分かりません。アンパサンドはデータxmlに存在し、有効です(CDATAにあります)。エラーは私のxsltのどこに有効ではありません。あなたはXMLエンティティ&amp;でアンパサンドをエスケープする必要が

+3

裸の '&'の代わりに '& 'を使ってみましたか? – gcochard

+0

@Greg Ok、今私は馬鹿だと感じる。私はそれを試みたが、まだ誤りを受けた。私はちょうど私がそれを置き換えなかった次の発生から実際にエラーが発生していることを認識しました...だからはい、答えを見つけました、ありがとう! –

+0

答えとして投稿しました。 – gcochard

答えて

2

。あなたのコードは次のようになります:

<xsl: when test="property_type='b&amp;b'">48</xsl:when> 
関連する問題