对于下面的一段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来获得。
分享到:
相关推荐
本文将深入探讨如何使用Descendants和Elements方法来遍历XML节点,特别是针对给定的XML示例。 首先,我们来看一下提供的XML示例: ```xml <?xml version="1.0" encoding="utf-8"?> <phoneNumber>13818181818...
'遍历XML节点 Set root = xmlDoc.documentElement '获取XML根节点 For Each node In root.childNodes '遍历子节点 Response.Write "节点名:" & node.nodeName & " " '处理其他属性和子节点... Next End If...
遍历XML节点可以帮助开发者更全面地了解文档结构,或者进行某些特定操作。例如: ```vb ' 遍历子节点 Set objNodes = objDom.documentElement.SelectSingleNode("//people/man").childNodes For Each element In ...
4. **XmlNodeList**: 用来存储一系列XmlNode对象,通常用于遍历XML节点。 要**增加节点**,我们先创建一个新的XmlElement对象,然后通过`AppendChild`或`InsertAfter`等方法将其添加到父节点中。例如,向上面的XML...
4. **遍历XML节点** 一旦XML文件成功加载,我们可以遍历其节点。例如,如果XML文件包含以下结构: ```xml 书名1 作者1 书名2 作者2 ``` 我们可以这样获取`<title>`元素: ```vbscript Dim ...
这个过程包括打开数据库连接,创建SQL INSERT语句,遍历XML节点并将值填入语句,最后执行SQL语句插入数据。 "TreeView和XML操作"涵盖了上述XML节点的添加、删除以及与TreeView的绑定。这涉及到对XML数据的操作以及...
在ASP中,我们可以使用XPath表达式来定位并操作特定的XML节点。 - **XPath表达式**: 例如,`/根元素/子元素[条件]`可以选取满足条件的子元素。 - **使用XPath**: `selectNodes`方法可以返回匹配XPath表达式的节点...
使用XmlReader,你可以高效地遍历XML文档,同时控制解析过程,例如跳过不需要的节点,只读取所需的数据。 总之,XML的添加操作和节点描述是XML处理的基础,而Repeater展示则是数据绑定的关键技术,结合XmlReader...
'遍历XML节点 For Each node In xmlDoc.documentElement.childNodes If node.nodeName = "province" Then '处理省份数据 For Each subNode In node.childNodes If subNode.nodeName = "city" Then '处理城市...
2. **解析XML**:通过DOM对象的方法,如selectNodes或selectSingleNode,可以查询和遍历XML文档的节点,获取所需数据。 3. **操作XML**:可以添加、删除或修改DOM树中的节点,以更新XML数据。 4. **保存XML**:...
3. **Properties和Methods**:这些是用于访问和操作XML节点的属性和方法,如`nodeValue`、`nodeName`、`childNodes`、`selectNodes`和`load`等。 现在,让我们来看一下如何在ASP中使用XMLDOM: 1. **创建XMLDOM...
通过DOM,我们可以使用ASP代码动态地创建、修改或查询XML节点。 3. **读取XML**:使用DOMDocument对象的`load`或`loadXML`方法可以加载XML文件或字符串到内存中。然后,可以使用`getElementsByTagName`、`...
- DOM(Document Object Model)和SAX(Simple API for XML)解析器:DOM将XML文档加载到内存中,允许遍历整个树结构;SAX则是事件驱动的解析方式,适用于大文件,因为它不存储整个文档。 2. **C#与XML的交互**: ...
3. 通过`getElementsByTagName`或`selectNodes`等方法获取特定的XML节点,如获取所有留言的节点。 4. 循环遍历节点,读取或修改节点内容,如用户名、留言内容等。 5. 当有新留言时,创建新的XML节点,插入到适当的...
// 遍历XML文件的节点 foreach (var element in doc.Descendants("element_name")) { string data = element.Value; // 处理数据 } ``` 接下来,将这些数据写入数据库,如SQL Server。ASP.NET提供了多种方式与...
- **读取XML数据** - 通过DOM对象,可以遍历XML文档的节点,获取所需的数据。 - **修改XML数据** - 改变DOM树的节点值或结构,然后将其保存回XML文件。 - **写入XML文件** - 将DOM对象序列化为XML字符串,并写入到...
加载完成后,可以通过`doc.SelectSingleNode()`或`doc.SelectNodes()`方法来查询和遍历XML节点。 2. **XML遍历**: 通过`XmlNodeList`对象,我们可以遍历XML文件中的所有节点。例如,遍历通讯录中的所有联系人: ...
5. 数据读取与写入:ASP可以使用XMLDOM来读取XML文件,通过遍历Node对象并处理数据。写入则可以创建新的Element对象,设置属性后插入到已有结构中,或者更新现有元素的属性。完成后,使用`save`方法保存修改到XML...
3. 遍历XML节点,获取留言信息: ```vbscript For Each commentNode In xmlDoc.SelectNodes("//comment") name = commentNode.SelectSingleNode("name").Text content = commentNode.SelectSingleNode("content...
可能包括创建XMLDOM对象,加载XML文件,遍历XML节点,提取或更新数据。 5. **安全机制**:为了防止未授权访问或数据篡改,系统可能包含了验证用户身份、防止SQL注入和跨站脚本攻击(XSS)的安全措施。 6. **管理...