ページ 1 / 1

rdfタグが消える?

Posted: 2007年3月05日(月) 17:33
by hiroshot
いつも質問させていただいていますhiroshotです。

今回はRSS実装に関しての質問です。

リファレンスとサンプルファイルを元にサイトトップの「What's new」を
RSS配信しようと取り組んでいます。

四苦八苦して、何とかテストサーバではRSSリーダへの登録画面が表示されるようになりました。
が、同じファイルを本番サーバ上で試してみると…
うまく表示されません。

具体的には、出力されたコードソースから判断すると、
XSLTファイルで<rdf:…> タグで出力させようとした箇所が、
<rdf:…>の部分が無視されて、
例えば<rdf:RDF>が<RDF>という感じで、
出力されているようです。

テストサーバは、もともとは本番サーバのバックアップ用に作成したものだったのですが、
現状少し使用が異なっていることは事実なのですが、
今回のような症状がどの部分からの影響なのか判別に困っています。

もしこのような症状に遭遇された方いらっしゃいましたら、
影響が考えられる部分を教えていただけないでしょうか?

とりあえず、現状分かっている違いはPHPが本番が4.4.2、テストが4.4.4ということです。

よろしくお願いします。

Re: rdfタグが消える?

Posted: 2007年3月06日(火) 16:03
by webmaster
 hiroshotさん、いつもありがとうございます。

 XSLTによる変換結果からプレフィクス(今回の場合"rdf")が勝手に省略
されてしまうとのことで、恐らくご利用のXSLTエンジンが何か悪さをしている
可能性があるかもしれません。

 XSLTのexclude-result-prefixes属性を使って意図的にプレフィクスの
出力を抑制する事はできますが、なんの指定もしていないのに抑制されるという
のは正常な動作ではないと思います。

 リファレンスマニュアル7章に、利用するXSLTエンジンを切り替える方法が
ありますので、一度お試し下さい。
(そもそもサーバに複数のXSLTエンジンが搭載されていなければ効果が
ありませんが・・)

 それで解決しない場合、今のところ思いあたる原因が見つからないのですが、
再度ご連絡頂ければ幸いです。

Posted: 2007年3月06日(火) 16:57
by hiroshot
webmasterさん、いつもお世話になっています。

自己解決できたので、自己レスをつけようと思ってアクセスしたら、ご返答がありました。 :D
アドバイスありがとうございます。

結果的に、webmasterさんがご指摘の方法で解決しました。

具体的にはsite.config.xmlファイルの<site>タグに下に

コード: 全て選択

<output xslt-libno="20"/>
を挿入しました。
自分でいろいろしてみたのですが、xslt-libnoの値が20と21のときは問題なく出力でき、
10のときは駄目でした。
sablotronではうまく動いていないようですね…

とりあえず解決しましたので、一安心です。
ありがとうございました。