XML在Web服务中扮演着至关重要的角色,结合多种客户端和服务器端语言,可以发挥出强大的作用。本文将探讨如何使用XML和客户端JavaScript来显示XML文件内容、访问子元素、操作元素等。
在客户端语言中,浏览器兼容性是一个主要问题。对于XML和JavaScript的组合,问题主要在于XML:并非所有浏览器都支持解析XML文档。
以下代码示例基于IE6。不支持XML的浏览器无法读取这些代码,因此在这些浏览器中查看XML文件时,浏览器将忽略所有标签。
以下是一个示例XML文件,展示了公司员工数据和营业额:
<?xml version="1.0" ?> <company> <employee age="19" sex="M">Premshree Pillai</employee> <employee age="24" sex="M">Kumar Singh</employee> <employee age="21" sex="M">Ranjit Kapoor</employee> <turnover> <year>100,000</year> <year>140,000</year> <year>200,000</year> </turnover> </company>
加载XML文件
您可以通过以下JavaScript代码加载XML文件:
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); function loadXML(xmlFile) { xmlDoc.async = "false"; xmlDoc.onreadystatechange = verify; xmlDoc.load(xmlFile); xmlObj = xmlDoc.documentElement; }
实际上,函数的最后两行就足以加载XML文件。前两行确保我们之后用来操作XML文件数据的任何JavaScript函数都不会对未初始化的对象执行任何操作。因此,调用verify()函数:
function verify() { // 0 对象未初始化 // 1 对象正在加载数据 // 2 对象已加载数据 // 3 可以处理对象中的数据 // 4 对象完全初始化 if (xmlDoc.readyState != 4) { return false; } }
现在可以加载XML文件了:
loadXML('xml_file.xml');
显示XML文件内容
使用alert(xmlObj.xml);
查看XML文件的全部内容。整个XML文件将按原样显示在警告框中,并带有适当的缩进。
子元素和节点
在上面的XML文件中,<company></company>
是顶级标签,所有其他标签都在其下。这些标签称为子元素。此XML文件可以用文件夹树的形式图形化表示:
在上面的XML文件中,顶级标签<company></company>
有4个子元素。
子元素的编号(在所有语言中通常如此)从0(零)开始。<turnover></turnover>
标签下有3个子元素。
我们可以使用childNodes.length
属性找到标签具有的子元素数量。因此,<company></company>
标签的子元素数量(此处为4)可以通过xmlObj.childNodes.length
找到。
<turnover></turnover>
标签的子元素数量(此处为3)可以通过xmlObj.childNodes(3).childNodes.length
找到。
我们在这里使用childNodes(3)
,因为<turnover></turnover>
是<company></company>
的第3个子元素。
测试子元素
您可以使用childNodes(i).hasChildNodes
测试特定节点子元素是否具有任何子元素。
因此,xmlObj.childNodes(3).hasChildNodes()
将返回true。xmlObj.childNodes(2).hasChildNodes()
将返回false,因为<employee></employee>
标签没有任何子元素。
获取标签名称
您可以使用childNodes(i).tagName
获取子元素的标签名称。因此,xmlObj.tagName
将返回“company”。xmlObj.childNodes(0).tagName
将返回“employee”。xmlObj.childNodes(3).childNodes(0).tagName
将返回“year”。
显示标签的内容
在XML文件中,第一个<employee></employee>
标签的内容是“Premshree Pillai”。您可以使用xmlObj.childNodes(0).firstChild.text
获取此值。
<?xml version="1.0" ?> <company> <employee age="19" sex="M">Premshree Pillai</employee> <employee age="24" sex="M">Kumar Singh</employee> <employee age="21" sex="M">Ranjit Kapoor</employee> <turnover> <year>100,000</year> <year>140,000</year> <year>200,000</year> </turnover> </company>
属性
在XML文件中,<employee></employee>
标签有3个属性。可以使用childNodes(i).getAttribute("AttributeName")
访问属性。因此,xmlObj.childNodes(0).getAttribute("id")
将返回“001”。xmlObj.childNodes(1).getAttribute("age")
将返回“24”。xmlObj.childNodes(2).getAttribute("sex")
将返回“F”。
...(后续内容,包括FAQ部分,可以根据同样的方式进行改写,保持原意,调整措辞和句式。)
以上是使用JavaScript文章读取和显示服务器端XML-第1部分的详细内容。更多信息请关注PHP中文网其他相关文章!