アプリ版:「スタンプのみでお礼する」機能のリリースについて

XML勉強してみて間もない者の質問です・・よろしくです。

XMLで例えば
<oyaji:samp xmlns:oyaji="http://sampsampsamp.co.jp">
</oyaji:samp>
と宣言したとすると、XSLスタイルシートファイルではどのように
oyaji:samp
を識別すればいいのでしょうか。


上記で質問内容の分からなかった方のみ以下読んでください・・
例えば
//templating.xsl
<?XML宣言?>
<xsl:stylesheet xmlns:xsl="スタイルシートURI">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template macth="samp">
</xsl:template>
</xsl:stylesheet>

とあったとすると、sampにはマッチしませんよね。
それをマッチさせる方法を教えてください。

A 回答 (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にて実験。
    • good
    • 0
この回答へのお礼

EXTYLEではなくIEなどのブラウザで表示結果を見た限り、お答えのようになりました。

質問したことについて、まとめるならば、ソース元XML文章の名前空間と、スタイルシートXSLの名前空間とで、同じものを使用すれば、結果的にそれをXPathで参照できるということでしょうか。

そのこと意外にも、XPathのルート参照の意味("/")についても、理解させてもらえる内容で、ためになりました。ありがとうございました。

あと、なんか修正されたみたいでしたが、どこが異なるのかわかりませんでした。私の知識の範外の事なのかもしれませんが・・。

教gooでは〆てから返信するようにとなっていますが、私の理解が間違っていたり、あとレス2の内容についてもできればお聞きしたいので、一応、〆るのは今から12時間以上経ってからにしようと思います。

お礼日時:2007/02/13 19:10

>どこが異なるのかわかりませんでした。

私の知識の範外の事なのかもしれません

結論から言えば俺の勘違いでした。全く違いはありません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
    • good
    • 0
この回答へのお礼

そこまで気を使っていただいていたとは・・
それを考えると、質問内容の説明で手を抜いていたような気がしてきます。。

<hoge xmlns="​http://www.example.com/">abc​あいう</hoge>
については、こちらも初めて知りました。
よい例を見せてもらえたと思っています。

知りたいことも知ることができて、加えて楽しかったです。
ありがとうございました。

お礼日時:2007/02/14 08:07

ごめんなさい。

おもいっきり捏造になってました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>

です
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!