• ベストアンサー
  • すぐに回答を!

XSLTの動作

いつもお世話になります。 以下のXSLTの処理の動き方を教えてください。 どうして3の結果xmlになるのかわかりません。おそらくposition()の取り方がわかっていないのかなって思っています。 自分としては <answer>  <色>白</色>  <色>yellow</色>  <色>赤</色>  <色>blue</色>  <色>黒</色> </answer> になるんじゃないのかなって思ってしまうのですが・・・。 (1)データ <?xml version="1.0" encoding="Shift_JIS"?> <color_pencil>  <price>1300</price>  <color><en>white</en><jp>白</jp>  <color><en>yellow</en><jp>黄色</jp>  <color><en>red</en><jp>赤</jp>  <color><en>blue</en><jp>青</jp>  <color><en>black</en><jp>黒</jp> </color_pencil> (2)XSLT <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">  <answer>   <for-each select="color_pencil/color">    <xsl:choose>     <xsl:when test="position() mod 2=0">      <xsl:apply-templates select="." />     </xsl:when>     <xsl:otherwise>      <xsl:call-template name="color" />     </xsl:otherwise>    </xsl:choose>   </xsl:for-each>  </answer> </xsl:template>  <xsl:template match="color">   <色><xsl:value-of select="jp" /></色>  </xsl:template>  <xsl:template name="color">   <色><xsl:value-of select="en" /></色>  <xsl:template> </xsl:stylesheet> (3)結果xml <answer>  <色>white</色>  <色>黄色</色>  <色>red</色>  <色>青</色>  <色>black</色> </answer>

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数409
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.2

(1)つまり、<color>要素の兄弟でループしているという考え方でよいのでしょうか? OK (2) ><xsl:apply-templates select="." />で呼ばれるのは、<xsl:template match="color">であると思うのですが、 OK ><xsl:value-of select="jp" />で<jp>要素はよばれるが、 NG 呼ばれるけどjp要素に対して【templateを】適用しろ、とは言って無いし,value-of select自体はテンプレートでもなんでもないよね? ><en>はビルトインテンプレートが呼ばれるのではないのでしょうか?? NG これがもし, <xsl:when test="position() mod 2=0">   <xsl:apply-templates /> </xsl:when> だったら, http://www.w3.org/TR/xslt#section-Applying-Template-Rules >In the absence of a select attribute, the xsl:apply-templates instruction processes all of the children of the current node, including text nodes. select属性がないので全ての子要素に対して該当するテンプレートを探して適用しますがね。 ============= 細かいことだけど,俺前回間違ったことを教えているところがあった。 http://www.w3.org/TR/xslt#strip

共感・感謝の気持ちを伝えよう!

質問者からの補足

回答ありがとうございます。 (1) <xsl:template match="color">  <色><xsl:value-of select="jp" /></色> </xsl:template> において、、<color><en>yellow</en><jp>黄色</jp></color>がカレントノードとして渡され、<color>→<en>→<jp>とカレントノードが移動していき、その中で<jp>が適合するので黄色が吐き出されるということで良いのでしょうか? ただ、<xsl:call-template name="color" />においては <xsl:template name="color">  <色><xsl:value-of select="en" /></色> <xsl:template> を呼び出してもカレントノードが移動しないが、<color><en>white</en><jp>白</jp></color>において<color>の子要素に<en>があるのでwhiteが吐き出される。 しかし、<xsl:call-template name="color" />に処理が戻っていっても、そっちの方には<en>や<jp>に適合するテンプレート呼び出しとかもないので、他に何かを吐き出すということも無いということでよろしいのでしょうか? (2) 前回間違ったことを教えていたとありますが、リンク先が英語で・・・なんのことやら・・・という感じですが空白文字の削除の仕方について書いてあると思うのですが、何が間違っていたのかも(汗)

関連するQ&A

  • XSLT

    いつもお世話になっております。 次のXSLTの結果がどうしてそうなるのかわからないので教えてください。 解説には、「処理は必ずルートノードのテンプレートから始まります」と書いてあるんですが、できましたら、その辺もからめて、どういう処理の流れになるのか、カレントノードがどう移動していくのか、教えていただけると助かります。 (XML) <?xml version="1.0" encoding="Shift_JIS"?> <Conference Situation="Reserved" Equipment="Projector">  <Room>会議室</Room>  <User>山田太郎   <Date>2008/05/08</Date>   <Time>10:00-12:00</Time>  </User>  <Number>4名</Number> </Conference> (XSLT) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  <xsl:output method="text" />  <xsl:template match="/Conference">   <xsl:value-of select="Number" />  </xsl:template>  <xsl:template match="Conference/User">   <xsl:value-of select="Date" />  </xsl:template>  <xsl:template match="/">   <xsl:value-of select="Conference/Room" />  </xsl:template> </xsl:stylesheet> (結果) 会議室

    • ベストアンサー
    • XML
  • XSLTについて

    入力となるXMLの要素Aに属性が複数存在した場合に、ある属性以外のすべての属性を要素Bに付与して出力したいのですがどのようなXSLTで記述すればいいのでしょうか? 入力例) <sample> <要素 aa="1" bb="2" cc="3">AAAAAAA</要素> </sample> 出力例) <sample> <youso bb="2">AAAAA</youso> </sample> XSLT) <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform" version="1.0"> <xsl:template match="/">   <sample> <xsl:apply-templates/> </sample> </xsl:template> <xsl:template match="要素"> <xsl:copy> <!-- <xsl:copy-of select="@*"/> -->☆ </xsl:copy> </xsl:template> </xsl:stylesheet>

    • 締切済み
    • XML
  • XSLTの処理について

    いつもお世話になっております。 XMLの動作についての質問です。以下のようなXMLファイルがあったとします。それに対して、その下のようなXSLファイルがあり、変換させると、結果XMLができます。 そこでわからないのは、test.xslの中ほどで、<xsl:template match="book/title/price">という風にXPath式でbook/title/priceと指定しているのに、結果には<title>の値も出力されます。なぜでしょうか。 自分のイメージとしては、<title>の値は出力されず<price>の値だけが出力されるのじゃないのかなっていう感じです。さらに<newTag>に<title>の値が挟まれていないのもなぜなのかわかりません。 お分かりになる方よろしくお願いします。もし参考文献に良いサイトや本がありましたらそちらも紹介をお願いします。 <<<test.xml>>> <?xml version="1.0" encoding="Shift_JIS"?> <books>  <book>   <title>    XMLとは    <price>2000</price>   </title>  </book>  <book>   <title>    XML概論    <price>1800</price>   </title>  </book>  <book>   <title>    XMLマスター    <price>4000</price>   </title>  </book> </books> <<<test.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="/">  <answer>   <xsl:apply-templates select="books/book"/>  </answer> </xsl:template> <xsl:template match="book/title/price">  <newTag>   <xsl:value-of select="."/>  </newTag> </xsl:template> </xsl:stylesheet> <<<結果.xml>>> <?xml version="1.0" encoding="utf-8" ?> <answer> XMLとは <newTag>2000</newTag> XML概論 <newTag>1800</newTag> XMLマスター <newTag>4000</newTag> </answer>

    • ベストアンサー
    • XML

その他の回答 (1)

  • 回答No.1

まず三つ関係ないところを指摘しておく。 1. color要素終了タグが悉く抜けている 2. for-each要素開始タグから名前空間接頭辞が抜け落ちている。 3. 開始タグ<xsl:template name="color">に対する終了タグから/が抜け落ちている。 さて,本題に入ろうか。 過去の質問を見ていると受けようとしている試験はそれなりのもののようだし,回答履歴見てもVB.NETやC#やらの回答をしている以上, 「zero origin」って聞いたことあるよね? 配列の添え字みたいに0から始まるの。1個の要素からなる配列の最大添え字は0 逆にCountとかLengthみたいなのは 1個あったら1が返ってくるよね? position関数がどっちなのか,前回でもそうだったけど【困った時は規格を調べる】のが一番だ。 http://www.w3.org/TR/xpath#section-Node-Set-Functions >The position function returns a number equal to the context position from the expression evaluation context. position関数はexpressionが評価されたコンテキストにおける位置を返す。 でcontext positionってなによ、ってリンク張ってあるからたどってみると http://www.w3.org/TR/xpath#dt-context-position >a pair of non-zero positive integers (the context position and the context size) 【非ゼロの】整数の組み合わせ(context positionとcontext size) って書いてあるからpositionは1から始まる。 <color><en>white</en><jp>白</jp></color> は position = 1 なので, <xsl:otherwise> <xsl:call-template name="color" /> </xsl:otherwise> を適用するから whiteが出てくるわけ 参考: http://www.w3.org/TR/xslt#for-each

共感・感謝の気持ちを伝えよう!

質問者からの補足

いつも回答ありがとうございます。 よくわかっていないところがぼろぼろと出てきます(汗) (1) ご説明より思ったのですが、<xsl:for-each select="color_pencil/color">でループするのは、 一回目は、<color><en>white</en><jp>白</jp></color> 二回目は、<color><en>yellow</en><jp>黄色</jp></color> ということで良いのでしょうか? つまり、<color>要素の兄弟でループしているという考え方でよいのでしょうか? (2) (1)の考え方で良いとすれば、<xsl:apply-templates select="." />で呼ばれるのは、<xsl:template match="color">であると思うのですが、<xsl:value-of select="jp" />で<jp>要素はよばれるが、<en>はビルトインテンプレートが呼ばれるのではないのでしょうか?? もう少しお付き合いよろしくお願いします。

関連するQ&A

  • 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
  • XSLTの記述方法

    お世話になります。 XML+XSLTで開発しております。 XSLTの記述方法でjavascriptの引数にXMLデータを挿入する記述は どうすればよいのでしょうか? すごい初歩的な質問かもしれませんが ご教授よろしくお願いいたします。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <table> <tr> <td > <a href="#" onClick="hogehoge('pram')">hogehoge rink </a> </td> </tr> </table> </xsl:template> </xsl:stylesheet> ↓↓↓↓↓↓こんな感じにしたい↓↓↓↓↓↓ <a href="#" onClick="hogehoge('<xsl:value-of select="$prm_test"/>')">りんく</a>

    • ベストアンサー
    • XML
  • javascriptからxsltに値を渡したい

    お世話になります。 下記のサイトを参考に http://webcache.googleusercontent.com/search?q=cache:587mPIaRXcwJ:www.tagindex.com/kakolog/q4bbs/1701/2037.html+xsltProc.setParameter&cd=5&hl=ja&ct=clnk&gl=jp&lr=lang_ja http://webcache.googleusercontent.com/search?q=cache:qLCKa_Rxc58J:domes.lingua.heliohost.org/dom/intro-misc2.html+xsltProc.setParameter&cd=2&hl=ja&ct=clnk&gl=jp&lr=lang_ja http://webcache.googleusercontent.com/search?q=cache:SJR9ZdyaGNUJ:taugus.web.fc2.com/WEB/XML/xml.html+javascript%E3%81%8B%E3%82%89xslt%E3%81%AB%E5%80%A4%E3%82%92%E6%B8%A1%E3%81%97%E3%81%9F%E3%81%84&cd=4&hl=ja&ct=clnk&gl=jp javascriptからxsltに値を渡したいと考え、下記のように設定してみているのですが、思うようにxsltファイルで参照出来ず、途方に暮れております。 どなた様か解決法などご教授願えませんでしょうか。お願い致します。 ※環境は、FireFox3.5を使っておりまして、現状、FireFoxのみで動作すれば良いと考えてます。 --test-1.html---- <html><head> <meta content="text/html; charset=utf8" http-equiv="content-type"> <title>JS+xslt</title> <script type="text/javascript"> function tramsformlists(xmlFile, xslFile, resultNodeID, Num){//chTag=inputのthis.value // alert("resultNodeIDは" + resultNodeID + "です。"); var xml, xslt, newDoc; var doc = document; var impl = doc.implementation; // XML ドキュメントの読み込み var xml = impl.createDocument("", "", null); xml.async = false; xml.load(xmlFile); // XSL ドキュメントの読み込み var xslt = impl.createDocument("", "", null); xslt.async = false; xslt.load(xslFile); // XSLT プロセッサを作成 var xsltp = new XSLTProcessor(); xsltp.importStylesheet(xslt); // 下記2つのどちらかの方法で取得したいと思ってますが、xslt側で、どちらの方法でも参照できないです xsltp.setParameter ('', "param.num", param.value); xsltp.setParameter ('', "Num", Num); // XSLT 実行(戻り値は文書断片ノード) var df = xsltp.transformToFragment(xml, doc); // 結果を付加 // var t3 = doc.getElementById("LorRorC"); // t4=t3.options[t3.selectedIndex].value; // alert("resultNodeIDは" + t4 + "です。"); var t1 = doc.getElementById("Div"+resultNodeID); t1.innerHTML = ""; t1.appendChild(doc.importNode(df, true)); var t2 = doc.forms["msg_form"].elements["Textarea" + resultNodeID]; t2.value = (new XMLSerializer).serializeToString(df);//DOM ノードを XML データに書き出す } </script> </head><body> <form name="msg_form"> <ul> <li> <input type="button" value="Menu" onclick="tramsformlists('test0.xml','test0.xsl','Test','10')"><br> <select name="num"> <option value="10" selected="selected">10</option> </select> <div id="DivTest"></div> <textarea cols="50" rows="10" id="TextareaTest">あああああああ</textarea> </li> </ul> </form> </body></html> ---- --test0.xml--- <?xml version="1.0" encoding="utf-8"?> <root> <nolink_logo> </nolink_logo> </root> ---- --test0.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="html" encoding="utf-8"/> <xsl:template match="root"> <xsl:apply-templates select="nolink_logo"/> </xsl:template> <xsl:template match="nolink_logo"> <xsl:call-template name="Test" /> </xsl:template> <xsl:template name="Test"> <xsl:variable name="menu" select="document('test1.xml')/root"/> <xsl:param name="param.num">0</xsl:param> <xsl:param name="Num">0</xsl:param> <div id="{$param.num} {$Num}">画像を表示 <xsl:for-each select="$menu"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="url[1]"/> </xsl:attribute> <xsl:attribute name="target">_blank</xsl:attribute> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:value-of select="img[1]"/> </xsl:attribute> </xsl:element> </xsl:element> </xsl:for-each> </div> </xsl:template> </xsl:stylesheet> ---- --test1.xml-- <?xml version="1.0" encoding="utf-8"?> <root> <img>http://domain/image2.gif</img> <url>http://domain/test.html</url> </root> ---- 大変恐縮ですが、どなた様かご教授頂けませんでしょうか 宜しく願い致します。

  • 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
  • XSLTによるノードの抽出の際に親のnamespaceで子ノードのnamespaceが上書きされないようにするには?

    下記のようなXMLに <?xml version="1.0" encoding="EUC-JP"?> <parent xmlns:xhtml="http://parent"> <child id="A1"> <taroh xmlns="http://child"> <age>10</age> </taroh> </child> </parant> 下記のようなXSLTを適用した場合、 <?xml version="1.0" encoding="EUC-JP"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > <xsl:output method="xml"/> <xsl:template match="text()|@*"> </xsl:template> <xsl:template match="node()[@id='A1']"> <xsl:copy-of select="./node()"/> </xsl:template> </xsl:stylesheet> 通常下記のような結果となりますが、 <?xml version="1.0" encoding="EUC-JP"?> <taroh xmlns="http://parent"> <age>10</age> </taroh> namespaceを変更させずに、下記のような結果を 得るためにはどのようにすればよいでしょうか? <?xml version="1.0" encoding="EUC-JP"?> <taroh xmlns="http://child"> <age>10</age> </taroh> 抽出には javax.xml.transform.Transformerを用いています。 どうか、よろしくお願いします。

    • 締切済み
    • XML
  • XSLTがブラウザで表示されません。

    勉強のために、下記のサンプルXMLファイル、XSLファイルを作成し、ブラウザで表示させようと思ったのですが、表示されません。 表示させる為になにか必要なソフト等をインストールしないといけないのでしょうか? ちなみにブラウザはIE5.5を使用しています。 もし、何か分かる方がいらっしゃいましたら、ご教授御願い致します。 ※sample.xml <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="sample.xsl"?> <PAGE> <EMPLOYEES> <EMPLOYEE> <EMPNO>1</EMPNO> <ENAME>一郎</ENAME> <JOB>President</JOB> <HIREDATE>1990-04-01</HIREDATE> <SAL>10000</SAL> <DEPTNO>10</DEPTNO> </EMPLOYEE> <EMPLOYEE> <EMPNO>50</EMPNO> <ENAME>次郎</ENAME> <JOB>Director</JOB> <MGR>1</MGR> <HIREDATE>1991-04-01</HIREDATE> <SAL>6000</SAL> <DEPTNO>30</DEPTNO> </EMPLOYEE> </EMPLOYEES> </PAGE> ※sample.xsl <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="Shift_JIS"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="PAGE"> <HTML> <BODY> <xsl:apply-templates/> </BODY> </HTML> </xsl:template> <xsl:template match="EMPLOYEES"> <xsl:apply-templates/> </xsl:template> <xsl:template match="EMPLOYEE"> <xsl:value-of select="ENAME"/><BR/> </xsl:template> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • XSLTでの複数のXML検索結果を統合するには?

    初歩的な質問でごめんなさい。 XSLTを使って複数のXMLを検索した結果を、表示したいのですが、結果を1つのテーブルに統合するにはどうすればいいのでしょう。 次のスクリプトを基に作りたいのですが。 function search (keyword) { node = thexsl.XMLDocument.selectSingleNode("//xsl:for-each"); if(keyword) node.setAttribute("select", "//data[contains(word, '" + keyword + "')]"); else node.setAttribute("select", "//data"); str = thexml.XMLDocument.transformNode(thexsl.XMLDocument); view1.innerHTML = str; } 次のファイルを利用して検索したいです、 <xml id="thexml1" src="db1.xml"></xml> <xml id="thexml2" src="db2.xml"></xml> <xml id="thexml3" src="db3.xml"></xml> <xml id="thexsl" src="db.xsl"></xml> xmlファイルの内容 <?xml version="1.0" encoding="utf-8" ?> <dataroot xml:lang="ja"> <data>・・・</data>  ・・・ </dataroot> xslファイルの内容 <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <table> <tr>・・・</tr> <xsl:for-each select="//data"> <tr>・・・</tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> よろしくお願いします。

    • 締切済み
    • XML
  • xsltを利用して変換後改行が入る

    MSXMLを利用して、XMLをHTMLへ変換しているのですが、変換後、改行が入ってしまいます。 どうすれば改行を取ることができるでしょうか? 【xslt】 <xsl:template match="ruby"><xsl:copy-of select="self::node()" /></xsl:template> 【XML】 <ruby><rb>○</rb><rp>〔</rp><rt>××</rt><rp>〕</rp></ruby> 【結果(HTML)】 <ruby xmlns=""> <rb>○</rb> <rp>〔</rp> <rt>××</rt> <rp>〕</rp>

    • 締切済み
    • XML
  • XSLT変換について

    以下のようにファイルを作成してみました。 ローカルではIEに表示できるのですが,アップすると表示されず「スタイルシートにドキュメント要素が含まれていません。スタイルシートが空であるか、正しく構成された XMLドキュメントでない可能性があります。」というコメントが出ます。ご存知の方いらっしゃいましたらどうか教えてください。 ↓作成したファイル 「top.xml」(省略) 「top.xsl」 <?xml version="1.0" encoding="Shift_JIS" ?> <xsl:stylesheet xmlns:xsl="(省略)" version="1.0"> <xsl:import href="./note.xsl" /> <xsl:output method="html" encoding="Shift_JIS" /> <xsl:template match="/">  <html xmlns="(省略)" xml:lang="ja" lang="ja">  <head>   <meta http-equiv="Content-Type"    content="text/html; charset=Shift_JIS" />   <title><xsl:value-of   select="/top/title" /></title>  </head>  <body>   <xsl:call-template name="header" />   <div align="center"><h1>HOME PAGE</h1></div>   <table> <tr><th>CONTENTS</th></tr> <xsl:for-each select="/top/contents"> <tr><th><a href="{url}"><xsl:value-of      select="label" /></a></th>      <td><small><xsl:value-of      select="text" /></small></td></tr> </xsl:for-each>   </table><br />   <xsl:call-template name="footer" />  </body>  </html> </xsl:template> </xsl:stylesheet> 「note.xsl」(top.xslにおけるxsl:importをコメントアウトしても結果は変わらなかったため,記載省略。)

    • 締切済み
    • XML
  • Firefox・GoogleChromeでのxslt読み込み

    Firefox・GoogleChromeでのxslt読み込み 現在、xml + xsltでhtmlを生成する試験をしているのですが、 Firefox・GoogleChromeで意図通りの結果にならず悩んでおります。 ソースは下記の通りなのですが、何かアドバイスをいただけたら助かります。 test.xmlとtest.xslを下記のようなフォルダ構成で配置する。 【フォルダ構成】 project |-xml | |-test.xml |-xsl |-test.xsl 【ソース】 test.xml <?xml version = "1.0" encoding = "utf-8"?> <?xml-stylesheet type = "text/xsl" href = "../xsl/test.xsl"?> <tests name = "test"> <test> <tag>aaa</tag> </test> <test> <tag>bbb</tag> </test> <test> <tag>ccc</tag> </test> </tests> test.xsl <?xml version = "1.0" encoding = "utf-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method = "html" encoding = "utf-8" doctype-system = "string" media-type = "text/xml" /> <xsl:template match="/"> <html lang = "ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title><xsl:value-of select = "tests/@name" /></title> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match = "test"> <div> <xsl:value-of select = "tag" /> </div> </xsl:template> </xsl:stylesheet> 【結果】 ・IE・Safari・Opera -> ちゃんと表示してくれる ・Firefox(Ver3.5.3) -> NG   ->・ページタイトル反映されない    ・tagの中身("aaa"・"bbb"・"ccc")が一行に表示されてしまう ・Google Chrome(Ver5.0.342.8 beta) -> NG   ->・何も表示されず、画面真っ白    ・デベロッパーツールでは、"Unsafe attempt to load URL・・・"とエラーが出ている 【備考】 ・『Mozilla で扱えるMIMEタイプは、IEより厳密』みたいな記述を見つけたので、 test.xslの3行目に呪文みたいなのを見よう見真似で書いてみたのですが、 効果なし。というか、この記述があってるのかも分からない。。。 ・Firefoxの場合、同じフォルダにtest.xmlとtest.xslを配置すると ちゃんと表示してくれる。 長々となってしまいましたが、よろしくお願いします。

    • 締切済み
    • XML