javascript解析xml(IE,FF)

本文介绍了一种跨浏览器的XML解析方法,适用于Internet Explorer和其他浏览器如Firefox、Mozilla等。通过使用不同的对象和方法,如Microsoft.XMLDOM、DOMParser及createDocument等,确保了不同浏览器环境下XML文档的一致性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IE写法:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

• 第一行创建空的微软 XML 文档对象
• 第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
• 第三行告知解析器加载名为 "books.xml" 的文档

loadXML() 方法用于加载字符串(文本),而 load() 用于加载文件。

在 Firefox 及其他浏览器中的 XML 解析器

下面的 JavaScript 片段把 XML 文档 ("books.xml") 载入了解析器:
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");

• 第一行创建一个空的 XML 文档对象
• 第二行告知解析器加载名为 txt 的字符串

注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。

解析 XML 文件 - 一个跨浏览器的实例

下面的例子把 XML 文档 ("books.xml") 载入 XML 解析器:
<html>
<body>
<script type="text/javascript">
try //Internet Explorer
{

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load("books.xml");
document.write("xmlDoc is loaded, ready for use");
}
catch(e) {alert(e.message)}
</script>
</body>
</html>

出于安全方面的原因,现代的浏览器不允许跨域的访问。
这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。
W3School 的实例所打开的 XML 文件位于 W3School 的域上。
假如你打算在自己的网页上使用上面的例子,则必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 "Access is denied"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值