- ベストアンサー
XMLの名前空間をXSLから指定する方法
- XMLの名前空間をXSLスタイルシートファイルで識別する方法について教えてください。
- XMLの名前空間をXSLで使用する際の指定方法について詳しく教えてください。
- XMLの名前空間とXSLスタイルシートの関連性について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
確認: 【入力】 <?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="fuga.xsl"?> <oyaji:samp xmlns:oyaji="http://sampsampsamp.co.jp/">abcあいう</oyaji:samp> 【変換】 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > <xsl:template match="/"> <hoge> <xsl:apply-templates /> </hoge> </xsl:template> <xsl:template match="samp">かきく<xsl:value-of select="/" /></xsl:template> </xsl:stylesheet> 【結果】 <?xml version="1.0" encoding="UTF-16"?><hoge>abcあいう</hoge> 【変換改】 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:himajin="http://sampsampsamp.co.jp/"> <xsl:template match="/"> <hoge> <xsl:apply-templates /> </hoge> </xsl:template> <xsl:template match="himajin:samp">かきく<xsl:value-of select="/" /></xsl:template> </xsl:stylesheet> 【変換結果】 <?xml version="1.0" encoding="UTF-16"?><hoge xmlns:himajin="http://sampsampsamp.co.jp/">かきくabcあいう</hoge> EXTYLEにて実験。
その他の回答 (2)
- himajin100000
- ベストアンサー率54% (1660/3060)
>どこが異なるのかわかりませんでした。私の知識の範外の事なのかもしれません 結論から言えば俺の勘違いでした。全く違いはありませんorz No.1の原稿作ってから、変換実行して、変換後のXMLの改行が見づらいことに気づき・・【原稿側だけ】XML,XSLT,結果全てを弄ったんですね。 原稿を弄った後に、変換かまして確認することなくNo.1に投稿してしまったんですよ ところで ここの回答システムって、URLが半角までってなっているようで、名前空間とか <hoge xmlns="http://www.example.com/">abcあいう</hoge> って書くと、見ての通り、">abcまでがURLだと思われてしまい、 ブラウザで見るとそこまでがリンクになってしまうんですね。 だから投稿した後、弄りミスったかな、と勘違いしたの。 (確認画面があるにも関わらず、確認せずに惰性でクリックするようになっているんで(^^;;;) だから、きちんと変換ができるものを確認してから投稿しなおしてみたのがNo.2なのねorz ところが、よく見たらNo.1と何も変わらないことに気づいちゃったのorz
お礼
そこまで気を使っていただいていたとは・・ それを考えると、質問内容の説明で手を抜いていたような気がしてきます。。 <hoge xmlns="http://www.example.com/">abcあいう</hoge> については、こちらも初めて知りました。 よい例を見せてもらえたと思っています。 知りたいことも知ることができて、加えて楽しかったです。 ありがとうございました。
- himajin100000
- ベストアンサー率54% (1660/3060)
ごめんなさい。おもいっきり捏造になってましたorz 【入力】 <?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="fuga.xsl"?> <oyaji:samp xmlns:oyaji="http://sampsampsamp.co.jp/">abcあいう</oyaji:samp> です
お礼
EXTYLEではなくIEなどのブラウザで表示結果を見た限り、お答えのようになりました。 質問したことについて、まとめるならば、ソース元XML文章の名前空間と、スタイルシートXSLの名前空間とで、同じものを使用すれば、結果的にそれをXPathで参照できるということでしょうか。 そのこと意外にも、XPathのルート参照の意味("/")についても、理解させてもらえる内容で、ためになりました。ありがとうございました。 あと、なんか修正されたみたいでしたが、どこが異なるのかわかりませんでした。私の知識の範外の事なのかもしれませんが・・。 教gooでは〆てから返信するようにとなっていますが、私の理解が間違っていたり、あとレス2の内容についてもできればお聞きしたいので、一応、〆るのは今から12時間以上経ってからにしようと思います。