`
xiaoz1122
  • 浏览: 12541 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ASP遍历XML节点

    博客分类:
  • ASP
阅读更多
对于下面的一段XML代码:
XML文档实例books.xml,如下所示:
<?xml version="1.0" encoding="gb2312" ?>
<books>
<book status="已售完">
<author>破破</author>
<title>XML入门</title >
</book>
<book status="热卖中">
<author>坏坏</author>
<title>XML提高</title>
</book>
</books>


我们已经可以创建XML文档对象,并加载XML文档了。对于已经加载的文档,我们要从文档中获取所需要的内容,这就要求能够通过DOM树来访问树中的任何一个节点,也就是对DOM树的遍历。

下面我们依旧以books.xml为例,通过几个实例来说明如何遍历DOM树中的节点。

首先,我们要获取XML文档的根元素节点,用VB描述这个操作如下:
Set root = myDocument.documentElement

现在,我们已经得到了文档的根元素节点,对于其他元素,我们如何获得对它的访问呢?以文档中的第二个book元素为例,对该元素节点以及其子节点的访问可以通过下面的方式来实现。
Set bookNode = root.childNodes.item(1)
Set authorNode = bookNode.childNodes.item(0)
Set textNode = authorNode.childNodes.item(0)
Set theName = textNode.nodeValue

上述访问语句执行后,theName的值是"坏坏"。

在上面的代码中,root是文档的根元素节点books节点,bookNode和authorNode都是元素类型的节点,textNode是TEXT类型的节点,theName是一个字符串。

childNodes是NodeList类型的属性,item是NodeList接口中Node类型的属性,通过item可以访问NodeList节点集合中的任意节点(这儿有一点需要注意,当我们要访问根元素节点books的第二个book子节点bookNode时,我们用的索引参数是"1",这是因为item中的索引参数是从0开始的,如果我们要访问节点集合中的第一个节点,则应该用item(0)来表示)。

在DOM规范中,要访问元素节点的文本内容,需要先得到元素节点的TEXT子节点,再通过TEXT节点的属性获取文本内容。微软在实现DOM接口时对DOM进行了部分扩展,可以通过元素类型节点的text属性直接获得元素中的文本内容。具体实用说明可以参考微软msdn中的帮助。

上面的例子给出了如何访问DOM树中的元素节点,对于DOM树中的属性节点,访问方法略有不同,可以通过下面的语句来实现:
Set bookNode = root.childNodes.item(1)
Set attr = bookNode.attributes.getNamedItem("status")
attrContent = attr.nodeValue

上述访问语句执行后,attrContent的值是"热卖中"。

在上面的代码中,attr是属性类型的节点,attributes是NamedNodeMap类型的属性,getNamedItem是NamedNodeMap接口中的方法。属性的内容可以通过属性节点的nodeValue来获得。
分享到:
评论

相关推荐

    asp.net Linq To Xml上手Descendants、Elements遍历节点

    C#3.0 Vs2008 RTM 本文介绍如何使用 Descendants、Elements快速遍历XML节点

    reader xml 代码

    asp.net 遍历xml 文档,读取xml 中子节点值,以及删除子节点等操作。

    XML文件处理

    遍历浏览XML数据信息 动态读取XML文件并显示 动态删除XML数据节点 动态生成XML文件并浏览 动态修改XML数据节点 动态增加XML数据节点 将XML文件中数据绑定到TreeView控件 用asp.net和xml写得新闻更新系统

    javascrip上百技术总集

    下 用javascript操作asp.net label控件 外一篇 用javascript改变onclick调用的函数 用JavaScript加密保护网站页面 用Javascript检测网速的方法 用Javascript评估用户输入密码的强度 用JavaScript...

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -...

    ExtAspNet_v2.3.2_dll

    -增加示例(data/tree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。 -同时更名的还有GridColumn的...

    JavaScript应用177例

    实例代码: 第1章(\cha01) ...第2章(\cha02) ...第3章(\cha03) ...2.代码Default.aspx需要IIS+ASP.net环境支持 \36.1\ 36.1.index.php 实现简单相册 \36.2\ Default.aspx 实现文本聊天室

    jQuery权威指南-源代码

    此外,他还是微软技术方面的专家,精通C#、ASP.NET 和SQL Server等技术,出版相关著作多部。 媒体推荐: jQuery的发展之迅速和取得的成功之巨大是其他所有开发框架都难以企及的,它已经成为Web开发者必备的核心...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

    JAVA面试题最全集

    选择树的一个节点时,如何得到这个节点? 70.向编辑框中输入字符时,如何控制只输入整数? 71.描述使用JDBC连接数据库的过程 72.EJB分为几类?什么是BMP,CMP? 73.什么是JNDI? 74.ADO是什么?ActiveX数据对象,是...

    JAVA上百实例源码以及开源项目

    递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第...

    JAVA上百实例源码以及开源项目源代码

    递归遍历矩阵 1个目标文件,简单! 多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第...

Global site tag (gtag.js) - Google Analytics