XML DOM 浏览器差异

简介: 不同浏览器在解析XML DOM时存在差异,尤其是对待空白和换行的方式。W3C DOM规范虽被广泛支持,但例如,Internet Explorer不将空格或换行视为文本节点,而其他浏览器则会。一个例子显示,在编辑器中添加的CR/LF和空格,可能导致IE计数为4个子节点,而其他浏览器计数为9个。

XML DOM 浏览器差异

DOM 解析中的浏览器差异

所有现代的浏览器都支持 W3C DOM 规范。

然而,浏览器之间是有差异的。一个重要的差异是:

处理空白和换行的方式

DOM - 空白和换行

XML 经常在节点之间包含换行或空白字符。这是在使用简单的编辑器(比如记事本)编辑文档时经常出现的情况。

下面的例子(由记事本编辑)在每行之间包含 CR/LF(换行),在每个子节点之前包含两个空格:

Giada De Laurentiis
2005
30.00

Internet Explorer 将不会把空的空白或换行作为文本节点,而其他浏览器会。

下面的代码片段显示(books.xml 的)根元素拥有多少个子节点:
实例
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);

尝试一下 »

实例解释:

使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
获取根元素的子节点
输出子节点的数量。结果取决于您所使用的浏览器。IE 浏览器会输出 4(提醒 4 个子节点),而其他浏览器会输出 9(提醒 9 个子节点)。

相关文章
|
1天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器将XML转换为JavaScript对象,允许在浏览器中操作XML。浏览器通常内置XML解析器,通过XMLHttpRequest加载XML文档,如示例所示,创建HTTP请求获取"books.xml",然后将响应解析为DOM对象,便于访问和修改。**
|
1天前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
该文介绍了XML DOM遍历节点树的概念,通过循环或移动在节点树中操作。示例展示了如何遍历XML文档,提取每个元素的名称和值。代码实例加载XML字符串到xmlDoc,获取根元素子节点,并输出它们的名称及文本值。
|
4天前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
**XML DOM 在不同浏览器间存在差异,主要体现在处理空白和换行上。IE 不将空格或换行视为文本节点,而其他浏览器则会。例如,一个包含换行和空格的XML文件,在IE中读取子节点数为4,在其他浏览器中可能为9。所有现代浏览器虽支持W3C DOM,但这种差异仍需注意。**
|
3天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器**将XML文件转化为JavaScript对象,允许在浏览器中操作XML。通过XMLHttpRequest加载文档,如`books.xml`,创建XMLHTTP对象,打开GET请求,发送后获取响应XML作为DOM对象。这在大多数内置XML解析器的浏览器中可用。
|
3天前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
该文介绍了如何遍历XML文档的节点树。通过循环移动,可以访问每个元素,例如提取值。示例展示了遍历`<book>`的所有子节点,显示节点名和值,如`title: Everyday Italian`, `author: Giada De Laurentiis`, `year: 2005`。代码首先加载XML到`xmlDoc`,然后获取根元素子节点并输出其名称与文本值。
|
2天前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
**XML DOM 在浏览器中的差异体现在处理空白和换行上。虽然现代浏览器都支持W3C DOM,但IE不将空格或换行视为文本节点,而其他浏览器则会。例如,一个XML文档中的CR/LF和空格可能导致不同的子节点计数。在示例中,IE会显示4个子节点,而其他浏览器可能显示9个。**
|
1月前
|
JavaScript 前端开发 UED
JS:如何获取浏览器窗口尺寸?
JS:如何获取浏览器窗口尺寸?
115 1
|
1月前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
55 0
|
1月前
|
JavaScript 前端开发 算法
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
|
1月前
|
JavaScript 前端开发 小程序
js 实现浏览器下载视频2种方法
js 实现浏览器下载视频2种方法
564 0

相关课程

更多