• 締切済み

htmlに変換されない

xmlを勉強しています。 しかし、ブラウザでxslファイルを 開いてもhtmlに変換されないまま表示されます。 何が問題なのでしょうか? 両方ともデスクトップに作った同じフォルダの中に 格納しています。 ブラウザは、ie7です。 ------------------------------------------------------ xmlファイル zen.xml <?xml version="1.0" encoding="SHIFT_JIS"?> <?xml-stylesheet type="text/xsl"href="zen.xsl"?> <全体> <情報> <名前>ニコルソン</名前> <住所>アメリカ</住所> </情報> <情報> <名前>フランク</名前> <住所>イタリア</住所> </情報> </全体> -------------------------------------------------- xslファイル zen.xsl <?xml version="1.0" encoding="SHIFT_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html lang="ja"> <head> <title>顧客情報</title> </head> <body> <div> <xsl:apply-templates select="全体"/> </div> </body> </html> </xsl:template> <xsl:template match="全体"> <xsl:for-each select="情報"> <ul> <li><xsl:value-of select="名前"/></li> <li><xsl:value-of select="住所"/></li> </ul> </xsl:for-each> </xsl:template> </xsl:stylesheet>

みんなの回答

回答No.3

>xslはスタイルシートなので通常はxmlを開くで正解なんでしょうか? 正解。

toru080
質問者

お礼

大変助かりました。 本当にありがとうございます。 これからも励みます!

回答No.2

気づかなかったけど、 <?xml-stylesheet type="text/xsl"href="zen.xsl"?> <!-- 何故かhrefの前に空白がない--> <xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- xmlnsの前に空白がない --> #俺の環境ではうまく行ってる

toru080
質問者

お礼

出来ました!! <!-- 何故かhrefの前に空白がない--> とのことで空白を入れれば出来ました。 ありがとうございました。 ただxmlを開いた場合、うまくhtmlで表示されたのですが、 相変らずxslを開いても構造しか表示されませんでした。 xslはスタイルシートなので通常はxmlを開くで正解なんでしょうか? 可能であればご回答お願いします。

回答No.1

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> <!-- 1.version属性は必須らしい。 2.掲示されたXSLTの名前空間はWorking Draftのもの。もうRecommendationなのだから適切なものを使おう。 3.掲示されたhtml要素は名前空間なし。XHTMLとして扱うならXHTMLの名前空間を宣言しないと駄目。 4.HTML 4.01にしたい場合とかはxsl:output要素を使う。 (この時はXHTMLの名前空間宣言なくても大丈夫。多分。 読んでないけど,XSLT 1.0のサンプルがそうなっているので http://www.w3.org/TR/xslt#section-HTML-Output-Method ) ちなみにlibxmlにはこういう話があったりするorz… http://pastaseca.blog119.fc2.com/blog-entry-42.html #一応、このソース、gooが勝手にZERO WIDTH SPACE足すので,直接コピペしてもうごかないのでそのつもりで --> (略) </xsl:stylesheet>

toru080
質問者

お礼

ありがとうございます。 資料が2001年のもので古いものでした。 下記に直しましたが、やはり表示されないです。 xslファイル <?xml version="1.0" encoding="SHIFT_JIS"?> <xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>顧客情報</title> </head> <body> <div> <xsl:apply-templates select="全体"/> </div> </body> </html> </xsl:template> <xsl:template match="全体"> <xsl:for-each select="情報"> <ul> <li><xsl:value-of select="名前"/></li> <li><xsl:value-of select="住所"/></li> </ul> </xsl:for-each> </xsl:template> </xsl:stylesheet>

関連するQ&A