XML DOM 浏览器差异

简介: 现代浏览器均支持W3C DOM,但存在差异,如处理XML中节点间的空白和换行。IE不将这些视为文本节点,而其他浏览器则会。示例显示,一个包含CR/LF和空格的XML文件在IE中解析有4个子节点,而在其他浏览器中有9个。`loadXMLDoc()`加载XML后,`documentElement.childNodes.length`的值因浏览器而异。

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 个子节点)。

相关文章
|
3天前
|
XML Web App开发 JavaScript
XML DOM 解析器
**XML DOM解析器将XML转换为JavaScript对象,允许在浏览器中操作XML。浏览器通常内置XML解析器,如XMLHttpRequest用于加载XML文档。以下代码示例展示如何加载"books.xml":** ```markdown - 创建XMLHttpRequest对象(或使用ActiveXObject for IE6/IE5) - 打开GET请求到"books.xml" - 发送请求 - xmlDoc变量存储响应的XML DOM ``` 此过程使开发者能够通过JavaScript遍历、修改XML文档的结构。
|
2天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于访问 XML 文档中的特定节点。该方法返回一个节点列表,相当于节点数组,可用来遍历和导航节点树。例如,加载 "books.xml" 到 xmlDoc 后,`x = xmlDoc.getElementsByTagName("book")` 将获取所有 `<book>` 节点。
|
4天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于获取 XML 文档中指定标签名的所有节点,返回一个节点列表,可遍历处理。通过节点关系及循环,能灵活访问和导航XML文档的整个节点树。例如,`xmlDoc.getElementsByTagName("book")` 返回一个包含所有 `<book>` 节点的数组。
|
4天前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
现代浏览器虽支持W3C DOM,但在处理XML空白和换行时存在差异。IE不将这些视为文本节点,而其他浏览器则会。例如,XML文件中的CR/LF和空格可能导致IE识别4个子节点,而其他浏览器识别9个。`document.write`显示不同浏览器的`childNodes.length`值体现这一差异。
|
2月前
|
JavaScript 前端开发 UED
JS:如何获取浏览器窗口尺寸?
JS:如何获取浏览器窗口尺寸?
150 1
|
2月前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
68 0
|
2月前
|
Web App开发 JavaScript 前端开发
浏览器与Node.js事件循环:异同点及工作原理
浏览器与Node.js事件循环:异同点及工作原理
|
20天前
|
Web App开发 JavaScript 前端开发
使用 JS 实现在浏览器控制台打印图片 console.image()
在前端开发过程中,调试的时候,我们会使用 console.log 等方式查看数据。但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的。 虽然我们可以把图片数据通过 img 标签展示到页面上,或将图片下载下来进行预览。但这样的调试过程实在是复杂,何不实现一个 console.image() 呢?
28 1
使用 JS 实现在浏览器控制台打印图片 console.image()
|
3天前
|
JavaScript
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
|
14天前
|
JavaScript
JS获取浏览器地址栏的多个参数值的任意值
JS获取浏览器地址栏的多个参数值的任意值
21 3