- - PR -
XSLTでの属性の生成について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-05 11:26
初めて質問します。
<xsl:element name="book"> <xsl:attribute name="id">SA100-2222</xsl:attribute> 〜 略 〜 </xsl:element> として、XML文書に変換すると <book id="SA100-2222"> 〜 略 〜 </book> と変換されます。この時、属性値の"(ダブルコーテーション)を '(シングルコーテーション)で変換することは可能なのでしょうか。 簡単な質問ですみませんが、よろしくお願いします。 [ メッセージ編集済み 編集者: Yasu 編集日時 2004-08-05 11:27 ] |
|
投稿日時: 2004-08-05 12:47
XSLTの仕様では、XSLTプロセッサの出力オプションにはありません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー QuoteChar プロパティを使用して、属性値を囲む引用符文字を決定します。有効な文字を次に示します。 一重引用符 (') 二重引用符 (") QuoteChar の既定値は二重引用符 (") です。 .NET Framework 開発者ガイド XmlTextWriter による XML 出力の書式設定 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconXMLOutputFormattingWithXmlTextWriter.htm writer.QuoteChar = '\u0027'; で動きました。 他のXSLTプロセッサでも、ソースを掘り下げると、変更はできるでしょう 常用しないため、ドキュメント化されてないのかも。 xml printer writer quotechar ... などの単語で検索すると public void setQuoteCharacter(char quoteChar) { write("=" + quoteCharacter); みたいなソースが網にかかります。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-08-05 14:33 ] |
|
投稿日時: 2004-08-05 15:12
MMX様、早速の回答ありがとうございます。
単純に一重引用符で変換するということはできないんですね。 プロセッサのソースを掘り下げてまでは考えていませんので とりあえず「できない」と理解しておきたいと思います。 お忙しいところ、ありがとうございました。 |
|
投稿日時: 2004-08-05 17:52
Yasuさま、こんにちは。
大変馬鹿らしい方法ですが、以下のような裏技があります。 <xsl:element name="book"> <xsl:attribute name="id">SA100-2222</xsl:attribute> <xsl:text>hoge</xsl:text> </xsl:element> と書くようなところを、 <xsl:text disable-output-escaping="yes"><book id='SA100-2222'></xsl:text> <xsl:text>hoge</xsl:text> <xsl:text disable-output-escaping="yes"></book></xsl:text> と書くわけです。 ただし…かなり特殊ですね。 [ メッセージ編集済み 編集者: TAKABE 編集日時 2004-08-05 17:54 ] [ メッセージ編集済み 編集者: TAKABE 編集日時 2004-08-05 17:55 ] |
1