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>
----
大変恐縮ですが、どなた様かご教授頂けませんでしょうか
宜しく願い致します。
お礼
ご回答ありがとうございます。 >特別な設定は要らないと思います。 そうですか.... 「『XML文書』をブラウザ上で出してみた...」 は、要するに "アプリに関連づけられているxxxx.xml をダブルクリックする"ということで間違いないですよねー。 うーん。????
補足
よそのブラウザではどうかな?と、 試しにFireFoxで開いてみたら問題なく表示することができました。 うん。IEがまずかったのでしょうかね。