• 締切済み

XSLTについて

XML文書内でスペース2つの要素に対してxsltでスペースの長さ回だけ&nbsp:に変換しようとしているのですが、xslt内ではスペースが1つしか渡ってこないのですがこれはどうしてなのでしょうか? もし参考のwebページ等がありましたら教えてください。 sample.xml <a>__</a>

  • XML
  • 回答数3
  • ありがとう数4

みんなの回答

回答No.3

バグであるという意見に変更させてもらいます。ごめんなさい。 .NETの実装も2を返しました。 http://msdn.microsoft.com/en-us/library/ms256144.aspx By default, all white-space-only text nodes are preserved. Do not start the transformation from Internet Explorer. The browser performs some space-stripping operations that are not compatible with the XSLT specifications. This can cause the XLST transformation to appear ill-behaved.

回答No.2

再調査しています。実装を見て正しいとか言ってたけど, 読んでいてやっぱり腑に落ちない気がしたので。 (全ての要素の初期はpreserve-spaceに分類される,と仕様に書いてある ように思った。) >some text nodes are stripped. someだから3つのテキストノードのうち,二つが消えたんだろう,とかいう思考をしてた。 preserve-spaceの時1を返したのはeXtyle(MSXMLを使用したもの) strip-spaceの時0を返した。 Javaにおいてはpreserve-spaceを書かずとも2が返り, strip-space要素を使った時は0が返りました。 たぶん再度回答しに来ます。 ===========

回答No.1

XSLT 1.0の仕様です。 http://www.w3.org/TR/xslt#strip A text node is preserved if any of the following apply: 以下の条件を満たさないため,White-space strippingが行われます。

motikei
質問者

補足

基本的に空白のみを含むノードは削除されてしまう。 →xsl:preserve-spaceで空白のみのノードを保存しておく。 →空白のみのノード(空白3つ含む)を出力する。 →空白1つのみが出力される。 空白のみのノードの中身にいくつ空白を含んでいても1つの空白 としてXSLT内では扱われるんですか?

関連するQ&A

  • XSLTについて

    入力となるXMLの要素Aに属性が複数存在した場合に、ある属性以外のすべての属性を要素Bに付与して出力したいのですがどのようなXSLTで記述すればいいのでしょうか? 入力例) <sample> <要素 aa="1" bb="2" cc="3">AAAAAAA</要素> </sample> 出力例) <sample> <youso bb="2">AAAAA</youso> </sample> XSLT) <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform" version="1.0"> <xsl:template match="/">   <sample> <xsl:apply-templates/> </sample> </xsl:template> <xsl:template match="要素"> <xsl:copy> <!-- <xsl:copy-of select="@*"/> -->☆ </xsl:copy> </xsl:template> </xsl:stylesheet>

    • 締切済み
    • XML
  • XMLをWord文書へ変換

    XML+XSLTを使って、縦書き表示を実現したいと思っています。いろいろ調べたら、Word2003がXML対応しているみたいなのですが、XML+XSLT=Word2003文書(縦書き)みたいなことは、可能なのでしょうか? 参考になりそうなWebページなどの情報でも良いので、 知っている方いましたら、教えてください。 よろしくお願いします。

    • 締切済み
    • XML
  • XSLTの置換(?)

    XSLT初心者です。 例えば、 -XML------------- <data>○○○○○<color>●●●●●</color>○○○○○○○○○○○○</data> ---------------- があったとして、それを、 -HTML------------- <p>○○○○○<font color="red">●●●●●</font>○○○○○○○○○○○○</p> ---------------- のようなHTMLへ変換するためのXSLTは どのように記述すればよいのでしょうか? 初歩的な質問なのかも知れないのですが、 よろしくお願いします。

    • ベストアンサー
    • XML
  • XMLをXSLTで変換するとき、XMLの要素名をそのまま表示したいのですが…

    お世話になっております。 XMLとXSLTの勉強をしているのですが、 XMLの要素名をXSLTで変換したときそのまま表示することは可能でしょうか? ---------------------------------------------------------- コレクション.xml ---------------------------------------------------------- <コレクション>  <書籍リスト>   <書籍>    <NO>001</NO> <!--↓”タイトル”という文字列を何らかのXSLT要素でHTML直書きせずにに表現したいのです↓-->    <タイトル>ド●えもん第一巻</タイトル>    <ジャンル>マンガ</ジャンル>    <価格>\410</価格>   </書籍>  </書籍リスト> </コレクション> ---------------------------------------------------------- 出力例 ---------------------------------------------------------- //↓ここにXML要素名を入れるなんてできるのでしょうか? タイトル    |ジャンル|価格| --------------------------------- ド●えもん第一巻|マンガ |\410| どなたか、ご教授の程、宜しくお願いいたします。

    • 締切済み
    • XML
  • XP SP2 & IE6 で XSLTスタイルシートが動いてくれない

    最近初めてXMLをいじってみようと思い、 ひとまず(↓)の方のページを参考に「XML文書」と「XSLT」を作成(といっても、コピペしただけですが)してみました。 http://ponk.jp/xml_xslt/index.php?page=1 出来上がって早速「XML文書」をブラウザ上で出してみたところ、 はじめ、XMLそのものが画面に現れ、おなじみの画面上に「セキュリティ保護のため、コンピュータにアクセスできる...ここをクリックしてください」のメッセージバー(?)と、「情報バーにお気付きですか?」のポップアップが表示されます。 言われるとおりにクリックし「ブロックされているコンテンツを許可」を選択すると、 真っ白の画面が表示され、ウンともスンとも言わなくなってしまいました。 これは、何が原因なのでしょうか?まさかXMLを表示するためにはクライアント側に何か特別な設定が必要なのでしょうか? 以下は、今回の環境です。 よろしくお願いします。  OS:WindowsXP Home Editon SP2  ブラウザ:IE6  Norton Internet Security 2005 あり

  • XSLTで固定長データファイルをつくるには?

    XSLTで固定長データファイルを作成する方法を教えてください。もとのXMLのデータは固定長に整形されておらず、XSLTでの変換時に、空白で不足分を埋めたいと考えています。 もちろん、XSLTでCSVファイルを作成する方法は知っているので、XSLTで空白によるパディングをする方法が知りたいです。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XSLTでの変換後のソース

    いつもお世話になっております。 先日、http://okwave.jp/qa3940547.html においてXMLをXSLTで変換する環境を教えていただいたのですが、現状XML Editer(IEのアドイン?)で結果を見ているのですが、ソースを見てみても変換前のXMLの内容しか見れず、変換後のタグとかがきちんとなっているのか確認できません。 EXCELで開くとそれらしく見れる方法があるのですが、希望する程のものではありません。 何かよいツール(できたらフリーのもの)とかありませんでしょうか。もしくは変換したものがファイルとして吐き出されるものでもよいです。 こちらは、オフィス2007やVS2005やVS2008は所有しております。これらでできる場合もお願いします。 よろしくお願いします。

    • ベストアンサー
    • XML
  • スマートなxsltの記述方法

    xml→xmlを行うxsltの記述方法で質問があります。 元のxmlの例を下に示します。 <?xml version="1.0" encoding="Shift_JIS" ?> <root> <A1> <B1> <DATA1>aaa</DATA1> <DATA2>bbb</DATA2> </B1> </A1> <A2> <DATA3>ccc</DATA3> <DATA4>ddd</DATA4> <B2> <DATA5>eee</DATA5> <C1> <DATA6>fff</DATA6> </C1> <DATA7>ggg</DATA7> </B2> </A2> <DATA8>hhh</DATA8> </root> (実際はDATA1,DATA2のような規則的な要素名ではありません) 変換後のxmlとしては <root> <DATA1>aaa</DATA1> <DATA2>bbb</DATA2>       ・       ・       ・ <DATA8>hhh</DATA8> </root> のように、値を持っている要素だけを、ルートノードの下に記述したものが欲しいのです。 作った物としては、  <xsl:template match="DATA1" >   <xsl:copy>    <xsl:value-of select="." />  </xsl:copy>  </xsl:template> このようなtemplateをDATA1-8まで記述するものです。 何か簡潔な記述方法はないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • XML
  • テスト環境構築

    いつもお世話になっております。 現在XMLの勉強をしているのですが、サンプルプログラムを動かしたりしたいのですが、どういう風な環境を作ればいいのでしょうか。 やりたいことは今のところ、XML文書をXSLTでHTMLに変換してそれをブラウザで表示させるとかです。具体的なやり方をお願いします。 当方の環境は、Vistaです。XPでもかまいません。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XSLTについて

    何方かご存知でしたら、ご教授下さい。 こんなXMLがあります。 <book>  <ジャンプ>200円</ジャンプ>  <マガジン>210円</マガジン>  <サンデー>200円</サンデー> : :(可変) </book> 上記のXMLをHTMLでこのように表示します。 <table>  <tr>   <td>ジャンプ</td>   <td>200円</td>  </tr>  <tr>   <td>マガジン</td>   <td>210円</td>  </tr>  <tr>   <td>サンデー</td>   <td>200円</td>  </tr> </table> <book>の子ノードは可変で、どんな要素名がくるかわかりません。 このときにどのようなXSLTを作成すればよいでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • XML

専門家に質問してみよう