• 締切済み

concat関数内でのシングルクォートの使用

シングルクォートを文字列として扱いたいのですが、 うまくいきません。 どなたかご存知ないでしょうか? concat('ここ''aaaaa','ここ');     ↓ 'aaaaa' のようにしたいのです。

みんなの回答

  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.2

XSLTスタイルシートで属性としてXPathが現れるような場合、&apos;のように記述しても、'に置き換えられてからXPathとして評価されてしまうので、以下のように記述してもダメです。 <xsl:value-of select="concat('&apos;aaa','&apos;'&apos;)"/> XPathが評価される段階では concat(''aaa',''') となってしまっているためです。 結局、シングルクォーテイションの中ではシングルクォーテイションを使うことはできないということが問題なのですから、以下のようにすればよいと思います。 <xsl:value-of select="concat(&quot;'aaa&quot;,&quot;'&quot;)"/> ※ 文字が勝手に置き換えられてしまうため、&を&で表しています。コピーアンドペーストする場合は気を付けてください。 こうしておけば、XPathが評価される段階では concat("'aaa","'") となって正しく評価されるはずです。 Xalanでしか試していませんので、実装によってうまくいかないことがあったらごめんなさい。

回答No.1

\'aaaaa\' のようにしたらどうでしょうか.

yasu3900
質問者

補足

色々と試してみたのですが、だめでした。 上記のものもだめなようです。 ちなみに、XSLTプロセッサはlibxsltです。 環境はSolaris8です。

関連するQ&A