• 締切済み

教えてください><

JavaScriptを使って XSLTに変数(key)を渡し、XMLをHTMLに変換 その結果を表示したいと思っています。 しかし、うまく表示してくれません。 XSLTをXMLに変換してHTMLするところに関しては正常に動いているので、 おそらくJavaScriptに問題があると思います。 どこがおかしいか教えていただけないでしょうか? 以下ソース <html> <head> <title>好きな本 </title> </head> <body onLoad="load()"> <script type="text/javascript"> var xml, xslt, xslProc; function load() { // 読み込む前に空のドキュメントを生成 if(!document.all) { // ブラウザ判別 // Mozilla xml = document.implementation.createDocument("", "", null); xslt = document.implementation.createDocument("", "", null); } else { // Internet Explorer xml = new ActiveXObject("Msxml2.DOMDocument"); xml.async = false; xslt = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); xslt.async = false; } // 読み込み(*.xml,*.xsl) xml.load("xmldata.xml"); xslt.load("seiseiform.xsl"); // XSLTプロセッサにスタイルシート(*.xsl)をセット if(!document.all) { // ブラウザ判別 // Mozilla xslProc = new XSLTProcessor(); xslProc.importStylesheet(xslt); } else { // Internet Explorer var xslTemp = new ActiveXObject("Msxml2.XSLTemplate"); xslTemp.stylesheet = xslt; xslProc = xslTemp.createProcessor(); xslProc.input = xml; } } function transform(in) { // XSLTプロセッサにパラメータを与えて変換、結果はresult要素に if(!document.all) { // ブラウザ判別 // Mozilla xslProc.setParameter(null, "key", in); var fragment = xslProc.transformToFragment(xml, document); document.getElementById('result').innerHTML = ""; document.getElementById('result').appendChild(fragment); } else { // Internet Explorer xslProc.addParameter("key",in); try { xslProc.transform; document.getElementById('result').innerHTML = xslProc.output; } catch(e) { document.getElementById('result').innerHTML = e.description; } } } </script> <form> <p><input type="text" name="in" size="40"/></p> <br></br> <p><input type="submit" value="検索" onClick="transform(in.value)"/> </p> </form> <div id="result"></div> </body> </html>

みんなの回答

回答No.1

============Q3803738-1.html================ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>都道府県と都道府県庁所在地</title> <script type="text/javascript"> var xml, xslt, xslProc; function load() { // 読み込む前に空のドキュメントを生成 if(!document.all) { // ブラウザ判別 // Mozilla xml = document.implementation.createDocument("", "", null); xslt = document.implementation.createDocument("", "", null); }else { // Internet Explorer xml = new ActiveXObject("Msxml2.DOMDocument"); xml.async = false; xslt = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); xslt.async = false; } // 読み込み(*.xml,*.xsl) // ※himajin100000の個人的な都合で,ファイル名を変えている。 xml.load("Q3803738-1.xml"); xslt.load("Q3803738-1.xsl"); // XSLTプロセッサにスタイルシート(*.xsl)をセット if(!document.all) { // ブラウザ判別 // Mozilla xslProc = new XSLTProcessor(); xslProc.importStylesheet(xslt); }else{ // Internet Explorer var xslTemp = new ActiveXObject("Msxml2.XSLTemplate"); xslTemp.stylesheet = xslt; xslProc = xslTemp.createProcessor(); xslProc.input = xml; } } //※紛らわしいので引数の名前変更。色々代わっているので直すこと。 function transform(input) { // XSLTプロセッサにパラメータを与えて変換、結果はresult要素に if(!document.all) { // ブラウザ判別 // Mozilla xslProc.setParameter(null, "key", input); var fragment = xslProc.transformToFragment(xml, document); document.getElementById('result').innerHTML = ""; document.getElementById('result').appendChild(fragment); }else { // Internet Explorer xslProc.addParameter("key",input); try { xslProc.transform; document.getElementById('result').innerHTML = xslProc.output; }catch(e){ document.getElementById('result').innerHTML = e.description; } } } </script> </head> <body onload="load()"> <!-- ※form要素不要。input要素のtype属性をsubmitからbuttonに--> <!-- ※inではMinefieldが文句言うのでdocument.getElementByIdを使う それにともない,name属性からid属性に変更した。 --> <!-- ※XHTML 1.0 Strictにしたのに伴い, 属性名は全て小文字にした。 --> <!-- ※OperaやSafariでは動作しませんでした。標準規格の技術にあるかどうかすら 俺は確認していません。 しかし,Web関連技術に関して説明なく「対応していません」とされるのが大嫌いなので 一般向けサービスとしてこの仕組みを使われることを拒否します。 (自分だけで使うとかイントラネット等ならまあいいけど。) それらのブラウザへの対応を考えるなら, サーバ側で動くプログラムでXSLTを適用するのが理想的です。 --> <!-- ※W3C Markup Validatorで確認したのでおかしいところがあったらgooのせいです。 ※質問タイトルは予想できるように書いてください。今回で言えば「XSLTとECMAscriptについて」とか --> <p><input type="text" id="in" size="40"/></p> <p><input type="button" value="検索" onclick="transform(document.getElementById('in').value)"/> </p> <div id="result"></div> </body> </html> ============Q3803738-1.xml================ <?xml version="1.0" encoding="UTF-8"?> <Data xmlns="http://himajin100000.example.com/"> <Prefecture> <name>東京都</name> <PrefecturalCapital>新宿区</PrefecturalCapital> </Prefecture> <Prefecture> <name>神奈川県</name> <PrefecturalCapital>横浜市</PrefecturalCapital> </Prefecture> <Prefecture> <name>埼玉県</name> <PrefecturalCapital>さいたま市</PrefecturalCapital> </Prefecture> <Prefecture> <name>F県</name> <PrefecturalCapital>F市</PrefecturalCapital> </Prefecture> </Data> <!-- ※何かXMLやXSLTの内容が大分変わっているけど 指摘する点に変更はないので勘弁してください 押し付けてばかりで申し訳ありませんが, 名前空間なしで運用される形を好まないので今回は 名前空間をつけさせてもらいました。 --> ============Q3803738-1.xsl================ <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sample="http://himajin100000.example.com/" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sample" > <xsl:param name="key"/> <xsl:template match="/sample:Data"> <!-- ※XHTML では確かdl要素の直下にdt,dd合わせて最低限一つ以上子に持つ必要があった と思うので厳密にはこのソースではxsl:ifで条件に一致するものがない時,文法エラーとなるから注意。 --> <dl> <xsl:apply-templates select="sample:Prefecture" /> </dl> </xsl:template> <xsl:template match="sample:Prefecture"> <xsl:if test="sample:name/text() = $key"> <dt><xsl:value-of select="sample:name" /></dt> <dd><xsl:value-of select="sample:PrefecturalCapital" /></dd> </xsl:if> </xsl:template> </xsl:stylesheet>

tkb_ht5
質問者

お礼

自分のやつでやってみたんですが、 検索ボタンを押しても動作しません。 himajin100000さんのサンプルでもやってみたんですが、 同じ状態になります。 すいません。根本的なことが分かっていないようです;;

関連するQ&A

  • xml+xslでの変換内容をtextareaへ

    お世話になります。 xml+xslでhtmlに変換する際、その変換内容をtextareaにも表示させるようにしたいのです。 使用ブラウザ:FireFox。現状はFirebugでDOMツリーを手動で参照してる状況です。 現在は、ノードをtextareaに表示しようとすると[object DocumentFragment]とだけ出てしまい、DocumentFragmentという概念あることは分かり、色々調べcreateElement()やcreateTextNode()など、その他思いつく限りの事でテストしてみてるのですが、どうにもノードをHTMLタグとしてtextareaに表示させる事が出来ません。 以下にポイントとなるソースを掲示しますので、どなた様か、お助け願えませんでしょうか --test.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){ var xml, xslt, newDoc; if(document.all){ xml = new ActiveXObject("Microsoft.XMLDOM"); xslt = new ActiveXObject("Microsoft.XMLDOM"); }else { xml = document.implementation.createDocument("", "", null); xslt = document.implementation.createDocument("", "", null); } xml.async = false; xslt.async = false; xml.load(xmlFile); xslt.load(xslFile); if(document.all){ document.getElementById(resultNodeID).innerHTML = xml.transformNode(xslt); }else { var xsltp = new XSLTProcessor(); xsltp.importStylesheet(xslt); newDoc = xsltp.transformToFragment(xml, window.document); var df = document.createDocumentFragment(); cloneDoc= newDoc.cloneNode(true); document.getElementById("Div"+resultNodeID).innerHTML = ""; document.getElementById("Div"+resultNodeID).appendChild(newDoc); t = document.msg_form.TextareaTest.value; document.msg_form.TextareaTest.value =t + df.appendChild(cloneDoc); } } </script> </head><body> <form name="msg_form"> <ul> <li> <input type="button" value="Menu" onclick="tramsformlists('test0.xml','test0.xsl','Test')"><br> <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"/> <div>画像を表示 <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>

  • 値渡し

    現在、JSPでXMLからJAVAサーブレットで登録したデータを JSPで表示させるプログラムを作成中なのですが、これができません。 どうしたら表示できるのでしょうか? JSPのソースを載せておきますね。 <――JSPソース――> ---省略---- <script> <!-- function getUid() { var Uid = "ここにXMLからの値持ってきて表示させたい"; var xslt=new ActiveXObject("MSXML2.XSLTemplate"); var xsldoc=new ActiveXObject("MSXML2.FreeThreadedDOMDocument"); xsldoc.async = false; xsldoc.load("DB/user/sinkikakunin.xsl"); xslt.stylesheet = xsldoc; var xmldoc=new ActiveXObject("MSXML2.DOMDocument"); xmldoc.async = false; xmldoc.load("DB/user/Uus.xml"); var xslproc = xslt.createProcessor(); xslproc.input = xmldoc; xslproc.addParameter("Uid",Uid); xslproc.transform(); var resultData=xslproc.output; document.getElementById("showArea").innerHTML=resultData; } --> </script> ---省略---- <td width="10"> </td> <td width="409" align="center"> <span style="font-size:9pt"> <form action="sinki4.jsp" method="POST" enctype"text/plain"> <div id="showArea"></div> <center> <br><br> <span style="font-size:9pt">全ての項目が正しければ次へお進みください</span><br> <br> ---省略---- <--XML--> <SAWASHI> <ユーザ ユーザID="5834C08828C95A9822198B7B5B7A6EC3"> <姓>若尾</姓> <名>直孝</名> <ニックネーム>まさき</ニックネーム> <都道府県>   県</都道府県> <市区>   市</市区> <性別>男</性別> <自己紹介>テスト</自己紹介> <アドレス>buchi-w@themis.ocn.ne.jp</アドレス> <パスワード>pass</パスワード> <パスワード確認>pass</パスワード確認> </ユーザ> </SAWASHI>

  • csv作成エラー

    CSVファイルを作ろうとcsvフォルダを作り、xmlファイル・xslファイルを入れました。 C:\csv\aaa.xml C:\csv\bbb.xsl コマンドプロンプトで C:\csv>java org..apache.xalan.xslt.Process -in aaa.xml -xsl bbb.xsl -out ddd.csv と入力したら、 file:/C:/csv/bbb.xsl;行番号1;列番号-1;XSLTエラー(javax..xml.transform.TransformerConfigurationException):javax..xml.transform.TransformerException: org.xml.sax.SAXParseException: ドキュメントのルート要素がありません。 と表示されてうまくいきません。 xslファイルの1行目には、<?xml version="1.0" encoding="utf-8"?>と記載されています。 教えていただけたらうれしいです。

    • ベストアンサー
    • XML
  • 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
  • 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を出力する時のエラー原因

    以下のように実行したところエラーとなるのですが 何が原因でしょうか? C:\Documents and Settings\Administrator\デスクトップ\test>java Transform Sample. xml Sample1.xsl result.xml Exception in thread "main" javax.xml.transform.TransformerException: java.io.Fil eNotFoundException: file:\C:\Documents%20and%20Settings\Administrator\デスクトッ プ\test\result.xml (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が 間違っています。) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1146) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1055) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at Transform.main(Transform.java:16) Caused by: java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\Ad ministrator\デスクトップ\test\result.xml (ファイル名、ディレクトリ名、またはボリ ューム ラベルの構文が間違っています。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1131) ... 3 more --------- java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\Administrator \デスクトップ\test\result.xml (ファイル名、ディレクトリ名、またはボリューム ラベ ルの構文が間違っています。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1131) at org.apache.xalan.transformer.TransformerImpl.createResultContentHandl er(TransformerImpl.java:1055) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at Transform.main(Transform.java:16) ***以下ソースです*** Sample.xml********************** <?xml version="1.0" encoding="Shift_JIS" ?> <cars> <car> <name>乗用車 </name> <price>100 </price> </car> </cars> Sample1.xsl********************** <?xml version="1.0" encoding="Shift_JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="Shift_JIS"/> <!-- 文書 --> <xsl:template match="/"> <root> </root> </xsl:template> </xsl:stylesheet> Transform.java********************** import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class Transform { public static void main( String args[] ) throws Exception { StreamSource in = new StreamSource(new File(args[0])); StreamSource ss = new StreamSource(new File(args[1])); StreamResult out = new StreamResult(new File(args[2])); TransformerFactory tff = TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(ss); tf.transform(in, out); System.out.println(args[2]+"出力"); } }

    • 締切済み
    • XML
  • javascriptでXML IEとfireFox

    作成中のホームページで、条件を入力させてその条件に合ったデータ(XMLで管理)を表示する という内容のモノを作ろうとしています。 実際に一通り動く所までは出来たのですが、IEでしか動作せず Firefox等の他ブラウザだと動作しません。 調べてみると、ActiveXObjectが使えないようなのですが どういう方法で実装すると動作するようになるのでしょうか。 よろしくお願いします。 ----------以下ソース一部---------- // ワーク用の XML ドキュメントオブジェクト var objDocWk = new ActiveXObject("Msxml2.DOMDocument.3.0") // 出力用の新しいルートノードを作成 dstNd = objDocWk.createNode(1, "list", "") // XML ドキュメントオブジェクト生成 var objDoc = new ActiveXObject("Msxml2.DOMDocument.3.0") objDoc.async = false objDoc.load("msch.xml") var objRootNode = objDoc.documentElement.childNodes =======================補足======================= 下記のようにやってみたのですが、jsのエラーが起り原因がわからないです。※fireFoxのみIEでは動作確認済 if (window.ActiveXObject) { //for IE // XML ドキュメントオブジェクト生成 var objDoc = new ActiveXObject("Msxml2.DOMDocument.3.0") objDoc.async = false // 曲情報の読込み objDoc.load("msch/msch.xml") // ワーク用の XML ドキュメントオブジェクト var objDocWk = new ActiveXObject("Msxml2.DOMDocument.3.0") } else { //for Firefox // XML ドキュメントオブジェクト生成 var xhttp = new XMLHttpRequest(); xhttp.open("GET", "msch/msch.xml", false); xhttp.send(null); var objDoc = xhttp.responseText; window.alert(objDoc); // ワーク用の XML ドキュメントオブジェクト var xhttp2 = new XMLHttpRequest(); xhttp2.open("GET", "msch/msch.xml", false); xhttp2.send(null); var objDocWk = xhttp2.responseText; window.alert(objDocWk); } // 出力用の新しいルートノードを作成 dstNd = objDocWk.createNode(1, "musiclist", "") // 曲情報のルートノードを取得 var objRootNode = objDoc.documentElement.childNodes エラー内容が objDocWk.createNode is not a function  と objDoc.documentElement is undefined   です。

  • javascriptのxml読み込みFireFoxにて

    htmlで外部javascriptを読み込んでxmlの読み込みをしています。 htmlは <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>無題ドキュメント</title> <script language="JavaScript" src="xmlSearch.js"></script> </head> <body onload="display()"> <div id="poem" align="center"></div> </body> </html> です。 javascriptは function display() { if(document.all){ xml_doc = new ActiveXObject("Microsoft.XMLDOM"); }else{ xml_doc = document.implementation.createDocument("", "", null); } xml_doc .async = false; xml_doc.load("flv.xml"); var root = xml_doc.documentElement; var book = root.childNodes; document.getElementById("poem").innerHTML = book.item(0).text; } xmlは <?xml version="1.0" encoding="UTF-8"?> <video> <pass>flv/video1.flv</pass> </video> です。 しかしこれだとFireFoxでは何も表示されません。 どなたか原因が分かる方いませんか?

  • Eclispe上でXML書込み可能が、E以外出来ず

    Eclispe上では、任意の値を、例えば(ex.xml等)に書込み可能なのですが、 ランナブルjarにして、デスクトップ上に他ファイルも含めて置き、jarを起動して、 XMLに書込みしようとしても書込みできません。 XMLは標準で作成してます(windows7 Home edition 管理者権限で動作 JDK1.7.0_05)。 色々調査しましたが原因不明です。 読み込みは問題ありません。XSLTにも関連していないようです。 何が違うのでしょうか? みなさま、よろしくお願いいたします。 ソースは以下の通り、 import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class XMLBasic { /*-------------------------* * Variables. * *-------------------------*/ /*----- For XML -----*/ /* XSL */ final static String XSL_FILE="resource\\style.xsl"; /**/ static Element element; /*-------------------------* * Methods. * *-------------------------*/ /*----- Rewrite -----*/ public static void rw(String value, String tagName, int itemNum, String xmlFileName, String xslFileName) { Document document=null; try { document=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(xmlFileName)); } catch (SAXException e) { } catch (IOException e) { } catch (ParserConfigurationException e) {} document.getElementsByTagName(tagName).item(itemNum).getFirstChild().setNodeValue(value); TransformerFactory tfactory=TransformerFactory.newInstance(); Transformer transformer=null; try { transformer=tfactory.newTransformer(new StreamSource(new File(xslFileName))); } catch (TransformerConfigurationException e) {} try { transformer.transform(new DOMSource(document), new StreamResult(new File(xmlFileName))); } catch (TransformerException e) {} } }

    • ベストアンサー
    • Java
  • xalan でエラーが出るんですが。

     xalanを使うと、よくエラーが出ます。うまく、XMLファイルをはきだしてくれる事もあるんですが、体外エラーが出ます。  エラー内容は、いつも同じで、以下の通りです。 SystemId Unknown; Line -1; Column -1; XSLT Error (javax.xml.transform.Transforme rConfigurationException): javax.xml.transform.TransformerException: javax.xml.tr ansform.TransformerException: xsl:stylesheet is not allowed in this position in the stylesheet! 誰か、原因の分かる人がいましたら、返事の方よろしくお願いします。

    • ベストアンサー
    • XML

専門家に質問してみよう