- 締切済み
xmlをjavascriptで読み込み、HTMLに表示させようとしてい
xmlをjavascriptで読み込み、HTMLに表示させようとしています。 IEでは出来たのですが、それ以外でのブラウザでどうしても読み込むことが出来ません。 簡単なxmlを作ります。例えばこの『これを表示』というテキストをfirefoxで表示させたい場合はどのように書けば良いのでしょうか? <?xml version="1.0" encoding="UTF-8"?> <items> <item>これを表示</item> </items> 今はこのようなjsを作っています。 アラートのAAAでxmlのテキストを表示させるようにしたいのですが・・・ ノードへのアクセス方法?が間違っているのはわかっているんです。ただ、検索して調べても色々出てきて、色々試しても上手くいかず・・・どうしても分がわかりません。 すみません、どなたかご指摘お願い致します!! xmlData = new XMLHttpRequest(); // XMLドキュメントをDOMで扱うためのオブジェクトを作る xmlData.overrideMimeType("sample.xml"); // XMLドキュメントを読み込む var AAA = xmlItemData.documentElement.childNodes[1].childNodes[1].text; alert(AAA); 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
XMLドキュメントを読み込むのはoverrideMimeTypeではありません。 参考にされている解説書、解説サイトを確認して下さい。 xmlData.overrideMimeType("application/xml"); .textでも行けるかもしれませんが、.nodeValueがXML-DOMでたしか標準だったと思います。 var AAA = xmlItemData.documentElement.childNodes[1].childNodes[1].nodeValue; IE7以上でXMLHttpRequestをサポートしています。 インターネットオプションでサポートしないようにも出来ますので、XMLHttpRequestとActiveXObjectの両方をチェックする方が良いと思います。 また、ActiveXObjectでAjaxをサポートする標準的な方法はXMLDomではなく、 IE6ではMicrosoft.XMLHTTP、 それ以上ではMsxml2.XMLHttp.3.0、Msxml2.XMLHttp.2.0、Msxml2.XMLHttp、もしくはMsxml2.XMLHttp.4.0(など)のバージョンがあります。 どのバージョンがインストールされているかクライアントにより異なるため、最新の物から順番に全部のバージョンをチェックするのが良いと思います。
- yyr446
- ベストアンサー率65% (870/1330)
No.1補足 "microsoft.XMLDOM" は、今は "MSXML2.DOMDocument" のはず。 それからajaxの方はとりあえず、....無視してください。
- yyr446
- ベストアンサー率65% (870/1330)
IEでは出来たのですが、それ以外でのブラウザでどうしても読み込むことが出来ません。 本当ですか?逆じゃないですか!隠されたコードがあるんじゃないっすか? 普通は、(ajax) xmlData =(window.ActiveXObject)?new ActiveXObject("Msxml2.XMLHTTP"):new XMLHttpRequest(); か(static) var xmlData = (window.ActiveXObject)?new ActiveXObject('microsoft.XMLDOM'):document.implementation.createDocument("", "", null); みたいに、xmlDataを生成してにロードするような... .overrideMimeType("sample.xml"); // XMLドキュメントを読み込む ってどこにありました。引数はMIMEタイプと文字コードの指定じゃないんですか... ロードは xmlData.async=false; xmlData.load("sample.xml"); で、xmlDoc.documentElementでXMLのルートをDOMで扱うとか、 xmlData.responsXMLをDOMで扱うとか、 どの場合も、IEとそれ以外では、XMLのノードリストのアクセスがちょっと違うので nodeTypeとかをチェックしてないと自身のtextnodeを取るつもりが、atributeの値 を持ってきたりして.... それとも私が無知なのか....
補足
有難うございます! すみません、言葉が足りませんでした。 IEで成功したのはこのソースではありません。 ここに書いたのは、IE以外で動くものを模索している状態のソースです。 あと、ここに書いた私のソースは間違っていると思います。そいうか、本当にまだ初心者で理解が及んでいないので、違っていてもそれが分からないんです。 今はまだ拾ってきたものを片っ端から試してみている状態です。 申し訳ありません・・・。