欢迎来到天天文库
浏览记录
ID:40312675
大小:2.95 MB
页数:26页
时间:2019-07-30
《第9章 使用文档对象模式脚本显示xml文档》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、i2、es(i).childNodes(0).text+""+"Author:"+Document.documentElement.childNodes(i).childNodes(1).text+""+"Binding:"+Document.documentElement.childNodes(i).childNodes(2).text+""+"Numberofpages:"+""+Document.documentElement.childNodes(i).childNodes(3).text+""+"Price:"+Document.documentElement.ch3、ildNodes(i).childNodes(4).text+"";}脚本把所有这些HTML标记块保存到变量HTMLCode中。在for循环之后,当所有块已生成并保存到HTMLCode中时,脚本把HTML标记赋予该页BODY中的DIV元素的innerHTML属性(这个元素的ID为DisplayDIV):DisplayDIV.innerHTML=HTMLCode;接着,DIV元素立即提交HTML并显示结果,它就是你在上一个图中看到的。要使你自己确信不论XML文档包含多少个BOOK元素页面都可正确工作,你可能要编辑该页中的数据岛以便它显示InventoryBig.xml,它4、包含的BOOK元素是Inventory.xml中的两倍:"dsoInventory"SRC="InventoryBig.xml">9.3.4使用其他方法访问元素到目前为止,你看到的示例脚本已访问了Element节点,它们使用childNodes或firstChild节点属性从一个节点移动到相邻的节点以便遍历节点层次。记住,你可以用类似的方法使用lastChild、previousSibling、nextSibling和parentNode节点属性。表9-2介绍了所有这些属性。注意childNodes、firstChild和lastChild属性只允许你访问非5、属性子节点,而previousSibling和nextSibling属性允许你访问任意类型的兄弟(sibling)节点。另一种访问XML元素的方法是使用getElementsByTagName属性抽取所有具有某种类型名(例如TITLE)的元素。这种方法可用于Document节点(如表9-3所示)以及Element节点(如表9-6所示)。如果调用Document节点的方法,那么它返回文档中所有具有指定类型名的元素的Element节点集合。例如,下面的语句获取文档中所有具有名称BOOK的元素的节点集合:NodeList=Document.getElementsByTagNa6、me("BOOK");如果调用一个元素节点的getElementsByTagName方法,如下例所示,那么它返回Element节点所有子孙元素的节点集合:NodeList=Element.getElementsByTagName("AUTHOR");提示如果把值"*"传给getElementsByTagName,那么它返回所有元素的节点集合(如果调用Document对象的方法,那么是指所有元素;如果调用Element对象的方法,那么是指所有子孙元素)。表9-6Element节点提供的有用的方法。对于Element节点来说,还可以使用表9-2中列出的任意一种公共的节点属性7、Element节点的方法描述示例getAttribute(attr-name)返回具有指定名称的元素属性的值tValue=Element.getAttribute("InStock");getAttributeNode(attr-name)返回代表具有指定名称的元素属性Attribute=Element.getAttributeNodeElement节点的方法描述示例getElementsByTagName(type-name)返回该元素所有具有指定类型名AuthorElementCollection=Element.get的子孙元素的元
2、es(i).childNodes(0).text+""+"Author:"+Document.documentElement.childNodes(i).childNodes(1).text+""+"Binding:"+Document.documentElement.childNodes(i).childNodes(2).text+""+"Numberofpages:"+""+Document.documentElement.childNodes(i).childNodes(3).text+""+"Price:"+Document.documentElement.ch
3、ildNodes(i).childNodes(4).text+"";}脚本把所有这些HTML标记块保存到变量HTMLCode中。在for循环之后,当所有块已生成并保存到HTMLCode中时,脚本把HTML标记赋予该页BODY中的DIV元素的innerHTML属性(这个元素的ID为DisplayDIV):DisplayDIV.innerHTML=HTMLCode;接着,DIV元素立即提交HTML并显示结果,它就是你在上一个图中看到的。要使你自己确信不论XML文档包含多少个BOOK元素页面都可正确工作,你可能要编辑该页中的数据岛以便它显示InventoryBig.xml,它
4、包含的BOOK元素是Inventory.xml中的两倍:"dsoInventory"SRC="InventoryBig.xml">9.3.4使用其他方法访问元素到目前为止,你看到的示例脚本已访问了Element节点,它们使用childNodes或firstChild节点属性从一个节点移动到相邻的节点以便遍历节点层次。记住,你可以用类似的方法使用lastChild、previousSibling、nextSibling和parentNode节点属性。表9-2介绍了所有这些属性。注意childNodes、firstChild和lastChild属性只允许你访问非
5、属性子节点,而previousSibling和nextSibling属性允许你访问任意类型的兄弟(sibling)节点。另一种访问XML元素的方法是使用getElementsByTagName属性抽取所有具有某种类型名(例如TITLE)的元素。这种方法可用于Document节点(如表9-3所示)以及Element节点(如表9-6所示)。如果调用Document节点的方法,那么它返回文档中所有具有指定类型名的元素的Element节点集合。例如,下面的语句获取文档中所有具有名称BOOK的元素的节点集合:NodeList=Document.getElementsByTagNa
6、me("BOOK");如果调用一个元素节点的getElementsByTagName方法,如下例所示,那么它返回Element节点所有子孙元素的节点集合:NodeList=Element.getElementsByTagName("AUTHOR");提示如果把值"*"传给getElementsByTagName,那么它返回所有元素的节点集合(如果调用Document对象的方法,那么是指所有元素;如果调用Element对象的方法,那么是指所有子孙元素)。表9-6Element节点提供的有用的方法。对于Element节点来说,还可以使用表9-2中列出的任意一种公共的节点属性
7、Element节点的方法描述示例getAttribute(attr-name)返回具有指定名称的元素属性的值tValue=Element.getAttribute("InStock");getAttributeNode(attr-name)返回代表具有指定名称的元素属性Attribute=Element.getAttributeNodeElement节点的方法描述示例getElementsByTagName(type-name)返回该元素所有具有指定类型名AuthorElementCollection=Element.get的子孙元素的元
此文档下载收益归作者所有