アプリ版:「スタンプのみでお礼する」機能のリリースについて

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);


宜しくお願い致します。

A 回答 (3件)

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(など)のバージョンがあります。
どのバージョンがインストールされているかクライアントにより異なるため、最新の物から順番に全部のバージョンをチェックするのが良いと思います。
    • good
    • 0

No.1補足


"microsoft.XMLDOM" は、今は "MSXML2.DOMDocument" のはず。
それからajaxの方はとりあえず、....無視してください。
    • good
    • 0

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以外で動くものを模索している状態のソースです。

あと、ここに書いた私のソースは間違っていると思います。そいうか、本当にまだ初心者で理解が及んでいないので、違っていてもそれが分からないんです。
今はまだ拾ってきたものを片っ端から試してみている状態です。
申し訳ありません・・・。

補足日時:2010/05/21 10:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!