- - PR -
xml:spaceについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-07-22 14:49
xml:space属性について質問します。
よろしくお願いします。 「xml:space="preserve"」にして、XSL中に要素と属性を作成しようとすると要素はできるが属性が作成されません。「xml:space="default"」とするとちゃんと属性が出るんです。 例:<abc attr="属性" />となると思っていたのですが、属性が追加されません。 <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xml:space="default" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" /> <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*" /> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:template match="c"> <xsl:element name="abc"> <xsl:attribute name="attr"> 属性 </xsl:attribute> </xsl:element> <xsl:apply-templates /> </xsl:template> </xsl:stylesheet> | ||||
|
投稿日時: 2004-07-22 14:55
すみません。下のxml:spaceをdefaultのまま送ってしまいました。
属性が作成できないのはxml:space="preserve"にしたときです。 <xsl:stylesheet version="1.0" xml:space="preserve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" /> よろしくお願いします。 | ||||
|
投稿日時: 2004-07-22 16:18
xsl:element の内容が
空白テキストノードの次に xsl:attribute が来る事になり 属性がelementノードの直後に付けられないから、では <xsl:element name="abc"><xsl:attribute name="attr"> 属性 </xsl:attribute> と書くと、 <abc attr=" 
属性 
" /> が出ます。 スタイルシート自体に xml:space="preserve" する理由は何? 入力XMLの読み込みには無関係と思います。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-07-22 16:27 ] | ||||
|
投稿日時: 2004-07-22 16:26
MMXさん
ここのところ度々質問させてもらっていますが、たくさんの回答をいただきまして 本当に助かります。ありがとうございます。
たまたま何かのサンプルを流用したときにこの記述があっただけで、特に理由はありません。 途中で、属性が追加できなくてはまってしまいました。仕様ならば仕方ないですね。 |
1