- ベストアンサー
XSLTの記述方法
- XSLTでcontent属性内にタグを含める方法について教えてください。
- XSLTでのタグの記述方法に関して、エラーが発生している場合の対処法を教えてください。
- XSLTを使用してXHTML形式に変換する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
<xsl:attribute>は、XSL変換をするまで分からない出力属性を作成するときに使うもので、既にcontentという属性名を知っている場合は、使う必要はないです。いまの場合は、contentという属性名を知っているわけだから、DTDでcontent属性をCDATA指定してやれば、XMLタグ内の要素でもなんでも入れることができます。 ”<xsl:attribute> 要素は、ドキュメントを変換するまでわからない出力属性を動的に作成するのに非常に便利ですが、既に属性を知っている場合は、この要素を使用する必要はありません。たとえば、前の例で、IMG 要素に src 属性が含まれている必要があることが既にわかっているかもしれません。その場合は、ドキュメントを変換する前に、その要件がわかっているため、<xsl:attribute> 要素を使用する必要はありません。” http://msdn.microsoft.com/ja-jp/library/ms256165(VS.80).aspx
その他の回答 (2)
- mha01
- ベストアンサー率81% (9/11)
その会社の仕様として meta要素に content という名前の属性をつける という項目があるのであれば、 <xsl:attribute> を使う必要は無いんじゃないかと思うんですが。 また仕様としてDTDが指定されていれば、DTDの中に <!ATTLIST meta content CDATA #IMPLIED> を追加してやれば、meta要素のcontent属性に対しては、 '<' や '>' 等のマークアップ文字を単なる普通の文字として認識させることができます。
補足
<xsl:attribute>を使っているのは、content属性に、XMLタグ内の要素を入れる必要があるので、使っています。 そちらのやり方を、考えた方がいいということでしょうか?
- mha01
- ベストアンサー率81% (9/11)
content属性内に<br>を入れる必要性が分からないのですが、エラーになってしまうのは、XSLTプロセッサが「<br>」をHTMLの改行ではなく、「br」という名前のタグと認識するからです。
お礼
ありがとうございます。 <br>を入れる必要性ですが、他の会社の仕様です。 「<br>」というテキストと認識させることは出来ないのでしょうか?
補足
教えていただいたサイトを参考に、もう少しやってみます。 ありがとうございました。