- 締切済み
javascriptとDOMを使ったxmlの読み込みがうまくいかない
「10日でおぼえるxml入門教室」をいう書籍を使って、xmlの勉強を始めたのですが、ダウンロードした本の内容のソースコードを実行しても想定された結果になりません。そのコードは <html> <head> <title>5-1.XML文書を読み込んでみる</title> <script language="JavaScript"> <!-- var objDoc=new ActiveXObject("Msxml2.DOMDocument"); objDoc.async=false; objDoc.load("books.xml"); window.alert(objDoc.xml); //--> </script> </head> <body> <h1>5-1.XML文書を読み込んでみる</h1> </body> </html> というもので、本来xml文書を表示したダイアログが出るはずなのですが、ブラウザで開いてもダイアログが出ずに、いきなり見出し字が表示されるだけです。 環境はMacOS10.5.5, 使用したブラウザはSafari, Firefox, Operaです。 そもそもIEでないと実行できないコードなのでしょうか? javascriptに関しても初心者なので、できるだけわかりやすい言葉で説明していただけるとありがたいです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nadera
- ベストアンサー率83% (5/6)
このjavascriptは,IEしか対応していません。 XMLを操作するには,XMLパーサというソフトが必要ですが,このjavascriptではMSXMLというマイクロソフトのパーサを用いており,IEにしか対応できません。 複数のブラウザに対応するには,ブラウザを判別して処理する必要があります。たとえば,次のようなものですが,これもSafariでは確かめていません。 <script language="JavaScript"> <!-- var myxml="books.xml"; if (window.ActiveXObject) { //for IE var xmlie = new ActiveXObject("Msxml2.DOMDocument"); xmlie.async = false; xmlie.load(myxml); window.alert(xmlie.xml); } else { //for Firefox var xhttp = new XMLHttpRequest(); xhttp.open("GET", myxml, false); xhttp.send(null); var xmldoc = xhttp.responseText; window.alert(xmldoc); } //--> </script>
お礼
適切な回答ありがとうございます。 このコードなら、全てのブラウザでうまくいきました。 結構まぎらわしいものなんですね。