• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スタイルシートを使用したXML入力は表示できません)

スタイルシートを使用したXML入力は表示できません

このQ&Aのポイント
  • XML入力でスタイルシートを使用するとエラーが表示される
  • XML入力のホームページを参考にしているが、IE6では正しく表示されない
  • 問題がある箇所を教えてほしい

質問者が選んだベストアンサー

  • ベストアンサー
noname#20378
noname#20378
回答No.1

「たのしいXML」さんのサンプルですね。やや読む順番がわかりにくい気もしますが、非常に解りやすく、私もここで勉強しました。 手元のFirefoxで実験したときに出てきたエラーから推理して × <?xml version="1.0" encording="Shift_JIS"?> ○ <?xml version="1.0" encoding="Shift_JIS"?> を修正したところ、うまく行きました。 蛇足ですが、このXSLTを用いた時にhtml要素に適用される名前空間が「なし」になっているため前にFirefoxでエラーが出たような気がしたんですが...再現しませんねぇ(汗。 一応自分なら <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> にしておくでしょう

brosis
質問者

お礼

ありがとうございますhimajin2009さん。 イヤーこんなに早く回答が来るとは、すごいですねこのサイトは。 間違いに関しては恥ずかしいかぎりです。 初心者の初心者ですがっこれからもお世話になります!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#20378
noname#20378
回答No.2

#1です。 さらなる蛇足です。XHTMLにはDOCTYPE宣言が必要だと思います 結構後ろのほうで(汗「たのしいXML」にも確か説明があったと思いますがxsl:output要素というのがあります。 http://www6.airnet.ne.jp/manyo/xml/xslt/step22.html <xsl:output method="xml" encoding="Shift_JIS" omit-xml-declaration="no" standalone="no" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes"media-type="text/html" /> という文を xsl:stylesheet要素の最初の子にします。長いですが(汗

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • xmlファイルが上手にHTMLに変換されない理由

    http://www6.airnet.ne.jp/manyo/xml/ こちらのサイトを参考にxmlを学んでいます。 下記のようにxmlファイルを作りIE9で表示しても コードしか表示されません。 他のサイトでも調べたのですが、原因が分かりませんでした。 ------------------------- 【C:\test\basic.xsl】 ------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="basic_1.xml"?> <manyosyu> <volume no="1"> <poem> <pno>8</pno> <mkana> 熟田津尓 船乗世武登 月待者 潮毛可奈比沼 今者許藝乞菜 </mkana> <poet>額田王(ぬかたのおおきみ)</poet> <yomi> 熟田津に船乗りせむと月待てば潮もかなひぬ今は漕ぎ出でな </yomi> <image>image/m0008.jpg</image> <mean>熟田津(にきたつ)で、船を出そうと月を待っていると、 いよいよ潮の流れも良くなってきた。 さあ、いまこそ船出するのです。 </mean> </poem> </volume> </manyosyu> ------------------------- 【C:\test\basic_1.xml】 ------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="basic.xsl"> <xsl:template match="/"> <html> <head> <title>たのしいXML: 基本サンプル-1</title> </head> <body> <p align="center">万葉集第1巻抜粋: とにかく表示してみよう</p> <p><xsl:value-of select="manyosyu" /></p> </body> </html> </xsl:template> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • XML/XSLでテンプレートの適用がうまくいかない

    同じツリーの深さで異なる要素名のノードがあるXMLだと期待通りにテンプレートが適用できない という問題に付き当たっています。 例えば    / +------+ poem  poem のような構成だとmatch=poem、value-of select="text"などで各poemの歌詞を表示させることが できます。 一方、以下の構成で同じ事をやろうとすると各poemの歌詞に加えてyearのnumのValueまで 列挙されてしまいます。poemの中身だけ出すにはどうすればよいでしょうか? 以下に例を書きます。     / +--------------+ list         year +------+      +----+ poem poem    Num Num 例えば以下のURLなどを参照してやっております。 http://www6.airnet.ne.jp/manyo/xml/xslt/step15.html XSLはこんな感じです。 <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="poem"> <tr> <td><xsl:value-of select="poet" /></td> <td><xsl:value-of select="yomi" /></td> </tr> <br /> </xsl:template> 手持ちのXMLを変換したく、その勉強のため上記のような構成のXMLを扱う方法を 知りたいと思っています。 よろしくお願いします。

    • 締切済み
    • XML
  • うまく表示されない・・・

    XML初心者のものです。 以下のXMLをXSLを使用してWebで公開しようと試みてます。が、うまく表示されません。 どこがおかしいのでしょうか? また設置ディレクトリ構成も教えてください。 以下サンプルを示します。 -XMLファイル-(sake1.xml) <?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet href="sake1.xsl" type="text/xsl" ?> <酒><名前>スーパードライ</名前></酒> -XSLファイル-(sake1.xsl) <?xml version="1.0" encoding="Shift_JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="酒"> <html> <head> <title>酒データ1</title> </head> <body> <p align="center">とりあえず表示してみる。</p> <p><xsl:value-of select="酒" /></p> </body> </html> </xsl:template> </xsl:stylesheet>

    • 締切済み
    • XML
  • XMLデータを動的に使用する

    XML初心者です。 お恥ずかしながらかなり幼稚な質問かもしれませんが宜しくお願いします。 XMLファイルがひとつあります。 ----ファイルの中身---- <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="相対パス/fff.xsl"?> <rss version="2.0"> <channel> <item> <title>お中元の季節になりました。</title> <link>https://XXXX/XXXXX</link> <pubDate>2007/07/05</pubDate> <description>お中元の季節になりました。デパートが賑わいをみせています。</description> <category>浅目新聞</category> </item> <item> <title>今年は平年並みの暑さ</title> <link>https://XXXX/XXXXX</link> <pubDate>2007/07/05</pubDate> <description>気象庁が今年は平年並みの暑さになると発表しました。</description> <category>毎回新聞</category> </item> </channel> </rss> XSLファイルがあります。 ----ファイルの中身---- <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>新聞情報表示テスト</title> </head> <body> <p align="center">表示テスト</p> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="item"> <table border="0" width="500" align="center"> <xsl:if test="title='お中元の季節になりました。'"> <tr> <td colspan="2">URL: <xsl:value-of select="link" /></td> </tr> </xsl:if> </table> </xsl:template> </xsl:stylesheet> このXSLファイルについて、"お中元"の部分を動的に変えたいのですが、可能でしょうか? できればjavascriptは使いたくありません。(javascriptを無効にしているユーザーがいるため) インプットボックスが用意してあり、そこにユーザーが"今年は平年並みの暑さ"と入力すれば、そちらのlinkを引っ張ってきたいのです。 かなり抽象的な質問になってしまい、みなさんに意図を汲み取って頂かなければなりませんが、困っていますので宜しくお願いします。

    • ベストアンサー
    • XML
  • XML+XSLTでの表示について

    IE10で、XML+XSLTを、ローカルのXMLを開くと体裁が付かず、テキストのみが表示されてしまいます。IE7(WindowsXP)では、正常に体裁がついていたのですが、IE10で何か変更になったのでしょうか? XML上で、 <?xml version="1.0" encoding="shift_JIS"?> <?xml-stylesheet type="text/xsl" href="xxxxx.xsl"?> と指定しています。 よろしくお願いします。

    • ベストアンサー
    • XML
  • VBAからxml・スタイルシートを作成すると、一度保存しないと正常に動作しない

    お世話になります。 現在エクセルのVBAで(1)のようなソースで(2)を書き出しています。 (2)の「<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 」もVBAで「indate=<?xml version="1.0" encoding="UTF-8"?xsl:stylesheet version="1.0" lns:xsl="http://www.w3.org/1999/XSL/Transform">」とそのまま打ち込んでいます。 スタイルシートを使用して返還しようとすると、「パラメータが違う」旨メッセージがでてきて、(2)を一度開き、何も変更しないで保存すると正常にスタイルシートの変換処理が行われます。 (2)のVBAで書き出したxmlがUTF-8で保存されていないように感じるのですが、どのように変更すればUTF-8で書き出せるのでしょうか? 以上お手数ですが、よろしくお願いします。 (1) Const ForReading = 1, ForWriting = 2, ForAppending = 3 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim fs, f, ts Set fs = CreateObject("Scripting.FileSystemObject") fs.CreateTextFile "F:\EXCEL→XML\問題形式" & Worksheets("設問形式設定シート").Range(設問形式設定シート大問列 & 設問形式設定シート行).Value & ".xsl" 'ファイルの作成 Set f = fs.GetFile("F:\EXCEL→XML\問題形式" & Worksheets("設問形式設定シート").Range(設問形式設定シート大問列 & 設問形式設定シート行).Value & ".xsl") Set ts = f.OpenAsTextStream(ForWriting, TristateTrue) ts.Write indate ts.Close (2) <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="設定.xsl" /> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:param name="形式番号" >10001</xsl:param> <xsl:template match="/"> <xsl:call-template name="問題形式" /> </xsl:template> xsl:stylesheet>

  • XSLTでの外部XMLファイルの読み込みについて。

    XSLTについて質問がございます。 下記のように、document関数を用いて外部のxmlを取り込んでいるのですが、 もし、そのxmlファイルが存在しなかった場合はエラーとなってしまいます。 この時、対象のxmlファイルが存在するか否かを、XSLTで調べる事は可能なのでしょうか? boolean関数を用いてみたりしたのですが、ファイルがない場合はやっぱりエラーになってしまいます。 どなたかご教授願います。 <!-- STYLESHEET --> <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="xsl1.xsl"/> <xsl:param name="doc" select="document('../XML/import.xml')"/> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • xmlから別ディレクトリのxslファイルの参照

    xml初心者です。 xmlファイルのひとつ上の階層にxslファイルを置いてあります。 xslファイル <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="../format.xsl"?> ... xslファイル format.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ... href="../format.xsl" のように指定したのですがxslが適用されません。 そもそも別ディレクトリへの参照は可能なのでしょうか。 もし可能ならばどのような方法があるのでしょうか。

    • ベストアンサー
    • XML
  • PHPでXMLを表示させたときの外部エンティティの挙動に関して

    XML+XSLでHTMLを生成する上で、PHPを経由する場合と、しない場合で、 外部エンティティの挙動が異なっていて悩んでいます。 具体的には、  ・XML+XSL+外部エンティティ → 意図通りHTML生成  ・PHP+XML+XSL+外部エンティティ → 意図通りHTML生成されない(外部エンティティが生成されない) こういうものなのでしょうか? もし、こういう仕様であれば、なにか対応策はあるのでしょうか? ソースと生成されたHTMLは下記の通りです。 【Though.php】 <?php header( 'Content-Type: text/html; charset=UTF-8' ); $xml = new DomDocument(); $xml->load( 'MainData.xml' ); $xsl = new DomDocument(); $xsl->load('Main.xsl'); $processor = new xsltprocessor(); $processor->importStyleSheet($xsl); echo $processor->transformToXML($xml); ?> 【MainData.xml】 <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="Main.xsl" ?> <!DOCTYPE books [ <!ENTITY sub_data SYSTEM "SubData.xml"> ]> <root> <node1>TEST1</node1> <node2>&sub_data;</node2> </root> 【Main.xsl】 <?xml version = "1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <xsl:apply-templates /> </html> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet> 【SubData.xml】 <?xml version="1.0" encoding="utf-8"?> <sub_data>Test2</sub_data> 【XML+XSL+外部エンティティで生成されるHTML(ブラウザで直接MainData.xmlを開いた場合)】 <html><?xml-stylesheet type="text/xsl" href="Main.xsl" ><root><node1>TEST1</node1><node2><sub_data>Test2</sub_data></node2></root></html> 【PHP+XML+XSL+外部エンティティで生成されるHTML(ブラウザでThrough.phpを開いた場合)】 <html> <?xml-stylesheet type="text/xsl" href="Main.xsl" ><root> <node1>TEST1</node1> <node2></node2>    //←node2の中がカラッポになっている。。。 </root> </html> ※生成されたHTMLは、IE8の開発者ツールで確認しています。 XMLやPHPは最近やり始めたのでトンチンカンなことを言ってるかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • XMLの実体参照とXSLT

    次のようなXMLファイルをXSLTで処理したいのですが、&baseの部分がうまく表示できません。 どのようにしたら表示できるでしょうか? ■a.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="a.xsl"?> <!DOCTYPE test [ <!ELEMENT name (#PCDATA)> <!ENTITY base SYSTEM "base.xml"> ]> <test> <name>abc</name> &base; </test> ■base.xml <?xml version="1.0" encoding="UTF-8"?> <base>base</base> ■a.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" /> <xsl:template match="/"> <xsl:apply-templates select="test" /> <xsl:apply-templates select="base" /> </xsl:template> <xsl:template match="test"> name:<xsl:value-of select="name" /> </xsl:template> <xsl:template match="base"> base:<xsl:value-of select="base" /> </xsl:template> </xsl:stylesheet> □結果 name:abc ※base.xmlの内容を表示できない

    • ベストアンサー
    • XML