`

Xml中SelectSingleNode用法详解(转)

 
阅读更多

最常见的XML数据类型有:Element, Attribute,Comment, Text.  
  
   Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.  
  
   Attribute, 指在<Employee >中的粗体部分。  
  
   Comment,指形如:<!-- my comment --> 的节点。  
  
   Text,指在<Name>Tom<Name>的粗体部分。  
  
   在XML中,可以用XmlNode对象来参照各种XML数据类型。  
  
   2.1 查询已知绝对路径的节点(集)  
  
   objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee”)  
  
   或者  
  
   objNodeobjNodeList = objNode.SelectNodes(“/Company/Department/Employees/Employee”) 
  
   以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回 Nothing。例如:  
  
   objNodeobjNode = objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)  
  
   If Not (objNode is Nothing) then  
  
   ‘- Do process  
  
   End If  
  
   2.2 查询已知相对路径的节点(集)  
  
  可使用类似于文件路径的相对路径的方式来查询XML的数据  
  
   objNode = objDoc.SelectSingleNode(“Company/Department”)  
  
   objNodeobjNodeList = objNode.SelectNodes(“../Department)  
  
   objNodeobjNode = objNode.SelectNode(“Employees/Employee”)  
  
   2.3 查询已知元素名的节点(集)  
  
  在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:  
  
   objNodeList = objDoc.SelectNodes(“Company//Employee”)  
  
   2.4 查询属性(attribute)节点  
  
  以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:  
  
   objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)  
  
   objNodeList = objDoc.SelectNodes(“Company//@id”)  
  
   2.5 查询Text节点  
  
  使用text()来获取Text节点。  
  
   objNode = objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)  
  
   2.6 查询特定条件的节点  
  
  使用[]符号来查询特定条件的节点。例如:  
  
   a. 返回id号为 10102的Employee节点  
  
   objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)  
  
   b. 返回Name为Zhang Qi的Name 节点  
  
   objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang Qi’]”)  
  
   c. 返回部门含有职员22345的部门名称节点  
  
   objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name") 
  
   2.7 查询多重模式的节点  
  
  使用 | 符号可以获得多重模式的节点。例如:  
  
   objNodeList = objDoc.SelectNodes(“Company/Department/Department_Name | Company/Department/Manager”)  
  
   2.8 查询任意子节点  
  
  使用*符号可以返回当前节点的所有子节点。  
  
   objNodeList = objDoc.SelectNodes(“Company/*/Manager)  
  
  或者  
  
   objNodeobjNodeList = objNode.ChildNodes  
  
   3 XML数据的编辑  
  
   3.1 增加一个元素的属性(attribute)节点  
  
   Dim objNodeAttr As XmlNode  
  
   objNodeAttr = objDoc.CreateAttribute("id", Nothing)  
  
   objNodeAttr.InnerXml = "101"  
  
   objNode.Attributes.Append(objNodeAttr)  
  
   3.2 删除一个元素的属性  
  
   objNode.Attributes.Remove(objNodeAttr)  
  
   3.3 增加一个子元素(Element)  
  
   Dim objNodeChild As XmlNode  
  
   objNodeChild = objDoc.CreateElement(Nothing, "ID", Nothing)  
  
   objNodeChild.InnerXml = "101"  
  
   objNode.AppendChild(objNodeChild)  
  
   3.4 删除一个子元素  
  
   objNode.RemoveChild(objNodeChild)  
  
   3.5 替换一个子元素  
  
   objNOde.ReplaceChild(newChild,oldChild)  
  
   4 参考数据  
  
   <?xml version="1.0" encoding="UTF-8"?>  
  
   <Company>  
  
   <Department >  
  
   <Department_Name>Cai WuBu</Department_Name>  
  
   <Manager>Zhang Bin</Manager>  
  
   <Employees>  
  
   <Employee >  
  
   <Employee_ID>12345</Employee_ID>  
  
   <Name>Zhang Bin</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>10101</Employee_ID>  
  
   <Name>Zhang QI</Name>  
  
   <Gender>female</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>10102</Employee_ID>  
  
   <Name>Zhang Xia</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>10201</Employee_ID>  
  
   <Name>ZhangChuang</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>10202</Employee_ID>  
  
   <Name>Zhang Jun</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   </Employees>  
  
   </Department>  
  
   <Department >  
  
   <Department_Name>KaiFa Bu</Department_Name>  
  
   <Manager>Wang Bin</Manager>  
  
   <Employees>  
  
   <Employee >  
  
   <Employee_ID>22345</Employee_ID>  
  
   <Name>Wang Bin</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>20101</Employee_ID>  
  
   <Name>Wang QI</Name>  
  
   <Gender>female</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>20102</Employee_ID>  
  
   <Name>Wang Xia</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>20201</Employee_ID>  
  
   <Name>Wang Chuang</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   <Employee >  
  
   <Employee_ID>20201</Employee_ID>  
  
   <Name>Wang Jun</Name>  
  
   <Gender>male</Gender>  
  
   </Employee>  
  
   </Employees>  
  
   </Department>  
  
   </Company>  

分享到:
评论

相关推荐

    在C#.net中如何操作XML(有实例和详解)

    若要从XML文件中读取数据,你可以使用`XmlDocument`的`Load()`方法加载文件,然后使用XPath或LINQ to XML查询数据。 3. 修改XML文件: - 通过`XmlNode`和`XmlElement`对象,你可以找到并修改XML文档中的特定节点...

    XML文件操作详解C#

    这段代码展示了如何使用`ReadXml`方法将XML文件中的数据加载到`DataSet`对象中。这为后续的数据处理提供了便利。 ##### 2.2 读取XML节点值 除了将整个XML文件读入`DataSet`外,有时我们只需要获取特定节点的值。...

    C#winform xml操作详解

    4. **读取XML**:可以使用XmlNode的SelectSingleNode或SelectNodes方法来查找特定的XML节点。例如,根据XPath表达式查找节点: ```csharp XmlNode node = doc.SelectSingleNode("//ElementName"); ``` 5. **更新...

    C#操作XML文档的详解

    2. **加载 XML 文件**:使用 `Load` 方法从文件加载现有的 XML 数据。 3. **选择根节点**:通过 `SelectSingleNode` 方法获取文档中的根节点。 4. **创建新元素**:使用 `CreateElement` 方法创建新的 XML 元素,并...

    配置文件Xml XMl公共类

    本文将深入探讨配置文件中的XML及其公共类的使用方法,通过具体代码示例来解析其功能与应用场景。 #### 一、XML配置文件概述 XML配置文件是一种基于文本的数据存储方式,通过标签和属性来组织和描述数据。这种格式...

    读写xml所有节点个人小结和读取xml节点的数据总结

    ### C#操作XML文件知识点详解 #### 一、概述 在C#开发中,操作XML文件是一项非常常见的任务。无论是读取配置文件还是处理数据交换,掌握如何有效地读写XML都至关重要。本篇文章将详细解释如何使用C#来读取XML文件...

    Delphi XML解析器 Native Xml 4.07

    本文将深入探讨Delphi中的Native Xml 4.07解析器,了解其功能特性、使用方法以及如何在实际项目中应用。 Native Xml 4.07是专为Delphi设计的一个高效、轻量级的XML解析库,它提供了完整的XML处理功能,包括解析、...

    wpf应用程序之xml序列化

    读取XML文件通常涉及使用`XmlSerializer`的`Deserialize`方法,它能将XML文本或流恢复为对象实例。而写入XML文件则可以利用`Serialize`方法,将对象实例转化为XML并写入文件。在WPF中,我们可以结合`FileStream`或`...

    vb.net对xml文件进行操作

    通过上述代码,我们可以根据属性条件选择需要删除的节点,并使用`RemoveChild`方法将其从XML文档中移除。 #### 六、总结 本文详细介绍了如何使用VB.NET对XML文件进行基本的操作,包括创建、插入、修改和删除。这些...

    Javascript读取xml文件

    ### JavaScript读取XML文件知识点详解 #### 一、XML与JavaScript简介 - **XML (Extensible Markup Language)**:一种标记语言,类似于HTML,用于存储和传输数据。它被设计成具有自描述性,使得数据在不同系统间...

    javascript读取XML文件方法

    ### JavaScript读取XML文件的方法详解 #### 一、引言 在现代Web开发中,XML(可扩展标记语言)作为一种轻量级的数据交换格式,在早期的Web应用中扮演着重要的角色。JavaScript作为前端的主要编程语言之一,具备强大...

    自动添加XML数据

    ### 自动添加XML数据知识点详解 #### 一、概述 在 ASP.NET 开发过程中,有时候我们需要将数据存储到 XML 文件中。本知识点详细介绍了一个 ASP.NET 应用程序中实现向 XML 文件添加数据的方法,该方法确保了数据不会...

    C#读取XML的CDATA节点内容实例详解

    C#读取XML的CDATA节点内容实例详解 在本篇文章中,我们将详细介绍如何使用C#语言读取XML文件中的CDATA节点内容。CDATA节点是一种特殊的XML节点,用于存储不需要被XML解析器解析的文本数据。在实际开发中,我们经常...

    c#处理xml文件

    在C#中,可以使用`XmlDocument`类的`Load`方法加载一个XML文件到内存中,然后通过遍历XML文档树的方式获取所需的信息。 ##### 示例代码解析: ```csharp XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(...

    dom4j中XPath用法

    **DOM4J中XPath用法详解** XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来方便地选取XML文档中的节点,包括元素、属性、文本等。DOM4J是一个非常流行的Java XML API,它提供了一...

    C__读写XML文件_xmlDocument

    ### C#读写XML文件使用XmlDocument方法详解 在C#中处理XML文件是一种非常常见的需求,尤其是在数据存储、配置管理或与Web服务交互时。本文将详细介绍如何使用`System.Xml`命名空间中的`XmlDocument`类来读取、修改...

    vb 读取xml

    ### VB.NET 中读取与操作 XML 文件的知识点详解 在 IT 领域,XML(可扩展标记语言)被广泛用于存储和传输数据,尤其是在 Web 服务和不同平台间的数据交换中。VB.NET(Visual Basic .NET)作为 Microsoft 开发环境的...

    C#操作XML取值

    本文详细介绍了如何使用C#中的`XmlDocument`类来操作XML文档,包括读取指定节点、添加新节点以及修改现有节点的方法。通过这些操作,我们可以灵活地处理XML数据,实现数据的存储、查询和更新等功能。这些技巧对于...

    。net xml文件操作大全

    接下来,我们可以通过`SelectSingleNode`方法来选取XML文档中的某个节点: ```csharp XmlNode root = xmlDoc.SelectSingleNode("bookstore"); ``` 这里,`SelectSingleNode`方法返回的是第一个匹配的节点,如果想要...

Global site tag (gtag.js) - Google Analytics