В данный момент изучаю XML. Хотел “поиграться” с классом Microsoft.XMLDOM.
Написал такой HTML файлик:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DOM scripting</title>
</head>
<script language="JScript">
<!-- hide script from older browsers
var oMystuff = new ActiveXObject("Microsoft.XMLDOM")
oMystuff.async="false"
oMystuff.load("message01.xml")
alert(oMystuff.text)
-->
</script>
<body>
Done!
</body>
</html>
По идее он должен был вывести все текстовые узлы файла message01.xml в окне сообщений. Но объект Microsoft.XMLDOM не создается. Может, кто подскажет, что можно сделать…
Не получается создать объект Microsoft.XMLDOM
Модератор: Duncon
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
avmir, почему ты считаешь, что не создаётся?
В Интернет Эксплорере данный код отработал на ура!
Другое дело, что в ФФ он не проходит, это да.
Вот кроссбраузерный вариант:
И тестовый XML файлик:
Честно содрано с W3Schools
(Первая ссылка гугля, кстати)
Но что меня больше всего порадовало, так это то, что XML он подгружает не только с локального компьютера, но и с сервера, находись оба файла на сервере.
Был очень приятно удивлён. Не ожидал даже.
Может кто-нибудь знает, какие браузеры поддерживают ActiveXObjectы, а какие - нет?
В Интернет Эксплорере данный код отработал на ура!
Другое дело, что в ФФ он не проходит, это да.
Вот кроссбраузерный вариант:
Код: Выделить всё
<html>
<head>
<script type="text/javascript">
var xmlDoc;
/**
* load xml file
*/
function loadXML() {
if (window.ActiveXObject) { // code for IE
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("test.xml");
getmessage()
} else if (document.implementation && document.implementation.createDocument) { // code for Mozilla, etc.
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("test.xml");
xmlDoc.onload=getmessage
} else {
alert('Your browser cannot handle this script');
}
}
function getmessage() {
document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValue;
document.getElementById("header").innerHTML=xmlDoc.getElementsByTagName("header")[0].firstChild.nodeValue;
document.getElementById("body").innerHTML=xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue;
}
</script>
</head>
<body onload="loadXML()">
[b]To:[/b] <span id="to"></span>
[b]From:[/b] <span id="from"></span>
[b]Title:[/b] <span id="header"></span>
[b]Message:[/b] <span id="body"></span>
</body>
</html>
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<xml id="note">
<note>
<to>SomebodyTo</to>
<from>SombodyFrom</from>
<header>Header</header>
<body>Body</body>
</note>
</xml>
(Первая ссылка гугля, кстати)
Но что меня больше всего порадовало, так это то, что XML он подгружает не только с локального компьютера, но и с сервера, находись оба файла на сервере.
Был очень приятно удивлён. Не ожидал даже.
Может кто-нибудь знает, какие браузеры поддерживают ActiveXObjectы, а какие - нет?
К сожалению, мой скрипт не работал в IE, потому и возник вопрос.
Oscar, просвети что такое "ФФ"?
За код спасибо - попробую
Oscar, просвети что такое "ФФ"?
За код спасибо - попробую
