`
_gougang
  • 浏览: 34700 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML SelectNodes 与 XPath

    博客分类:
  • xml
阅读更多
转载自:http://www.cftea.com/c/2010/07/8N0MHOUN27V0R3JB.asp

XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法。SelectNodes 使用 XPath 来选取节点。

重要语法

SelectNodes("item")

从当前节点的儿子节点(仅限儿子,不包含孙子、重孙噢)中选择名称为 item 的节点。

SelectNodes("/item")

从根节点的儿子节点中选择名称为 item 的节点。

SelectNodes("//item")

从任意位置的节点上选择名称为 item 的节点。要重点突出这个任意位置,它不受当前节点的影响,也就是说假如当前节点是在第 100 层(有点夸张),也可以选择第一层的名称为 item 的节点。

SelectNodes(".")

选择当前节点。

SelectNodes("..")

选择当前节点的父节点。

SelectNodes("//item[@name]")

在 SelectNodes("//item") 的基础上,增加了一个限制,就是要求拥有 name 属性。

SelectNodes("//item[@name='111']")

在 SelectNodes("//item[@name]") 的基础上,增加了一个限制,就是要求 name 属性值为 111。注意语法中有引号;如果没有引号,则表示是数字类型,对于数字类型可以使用大于号、小于号等,比如:SelectNodes("//item[@v>333]")。

SelectNodes("//item[1]")

选择第一个 item,注意是第一个,不是第二个。

还有这里是指亲兄弟间的第一个 item,也就是说:父级若有三个 item,则选择第一个;若父级第二个 item 的有两个名称同样为 item 的儿子,则第一个儿子会被选择出来;若父级第三个 item 的也有两个名称同样为 item 的儿子,则第一个儿子也会被选择出来……

SelectNodes("//item[last()-1]")

倒数第二个节点,同样是指亲兄弟间的倒数第二个。

SelectNodes("//item[position()<=2]")

位置为第一和第二的节点(第一个节点的 position() 为 1),同样是指亲兄弟间的位置。

SelectNodes("//@name")

SelectNodes("/root/item/@name") 取 item 的 name 属性

选择 name 属性,注意这下选择的是属性,而不是节点了。用 Value 属性获取属性集合的属性值。

SelectNodes("/root/item")

根节点 root 下的 item 儿子节点。

SelectNodes("/root//item")

根节点 root 下的不管是儿子、孙子、重孙子……,只要是名称为 item 的统统选取出来。

通配符

可用 * 表示任意节点名称,比如 SelectNodes("/channel/*/item");
用 @* 表示任意属性;
用 node() 表示任意类型的节点;
用 text() 表示文本类型的节点,实际上也就是表示取文本节点(元素节点下面是文本节点,文本节点下面才是文字)。
运算符

| 表示或。SelectNodes("//item|//channel"),选择 item 或 channel 节点。
分享到:
评论

相关推荐

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    2. `XPath.selectSingleNode()`: 与`selectNodes()`不同,这个方法只返回第一个匹配XPath表达式的节点。如果没有任何匹配的节点,它会返回`null`。这在你只需要获取单个特定节点时非常实用,避免了遍历整个结果集的...

    Dom4j 解析Xml文档及 XPath查询 学习笔记

    **标题:** Dom4j 解析Xml文档及 XPath查询 学习笔记 **正文:** XML(eXtensible Markup Language)是一种标记语言,常用于数据交换、配置存储以及文档结构化表示。在Java世界中,解析XML文档有多种库,其中Dom4j是...

    C# XML处理中xpath使用文档

    在C#编程中,XPath可以与`System.Xml`命名空间中的类,如`XmlNode`, `XmlDocument`, `XPathNavigator`和`XPathExpression`等结合使用,方便地检索和操作XML数据。例如,`XmlNode.SelectNodes()`方法可以接受一个...

    C#操作xml之xpath语法

    XPath是一种用于在XML文档中查询和定位元素与属性的强大语言。其语法类似于文件系统的路径表达式,但更灵活,允许使用模式匹配和条件筛选。通过XPath,开发者能够精确地选取XML文档中的特定部分,无论是单个节点还是...

    Dom4j结合XPath解析XML文件路径表达式

    在Dom4j中,我们可以使用`org.dom4j.XPath`类来创建XPath对象,并通过`selectNodes()`或`selectSingleNode()`方法来执行路径表达式,获取XML文档中的节点集合或单个节点。以下是一个简单的示例: ```java import ...

    js中使用xpath来解析xml元素实用.pdf

    在JavaScript中,XPath主要应用于AJAX开发,即在客户端与服务器交互时解析返回的XML数据。例如,服务器端返回一个简单的XML响应,如 `&lt;resume&gt;&lt;name&gt;朱元璋&lt;/name&gt;&lt;age&gt;18&lt;/age&gt;&lt;/resume&gt;`,客户端可以通过...

    xml+dom4j+xpath资料

    DOM4J与XPath的结合使用,大大简化了XML处理的复杂度,提高了开发效率。在实际项目中,它们是处理XML数据不可或缺的工具。通过深入学习和实践,开发者可以更好地掌握XML的解析、操作和查询技术,提升项目中的数据...

    js中使用xpath来解析xml元素.docx

    ### 使用JavaScript与XPath解析XML元素 #### XPATH简介 XPath是一种在XML文档中查找信息的语言。它使用路径表达式来选择节点或集合节点,并且能够处理来自XML文档的数据,为构建XSLT这样的XML应用程序提供了强有力...

    XMLDOM对象方法手册.chm+XPath.chm

    XMLDOM与XPath的结合使用能极大地提高处理XML数据的效率和灵活性。通过XPath,我们可以精确定位到XML文档中的特定部分,然后使用XMLDOM的方法进行修改或操作。例如,可以先用XPath选取需要的元素,再调用`innerHTML`...

    XML___Xpath

    在C#中使用XPath,通常会结合.NET框架中的System.Xml命名空间,例如使用`XmlDocument`或`XDocument`类来加载XML文档,然后调用`SelectNodes`或`SelectSingleNode`方法,传入XPath表达式来获取所需节点。下面将详细...

    使用dom4j读取xml四种方法

    #### 方法一:使用`SAXReader`与`elementIterator` **方法原理**: 此方法首先利用`SAXReader`读取XML文档并将其转换为`Document`对象。接着,通过调用`getRootElement()`获取根元素,再利用`elementIterator()`...

    Demo4j和XPath解析XML的文件路径表达式(ZVON.org - X 路径教程)

    本教程将重点讨论如何使用Java库Demo4j与XPath一起工作,以解析XML文件中的路径表达式。 首先,我们需要理解XPath的基本概念。XPath使用路径表达式来选取XML文档中的节点,这些路径表达式类似于文件系统中的路径。...

    IE下获取XPATH小工具源码_xpath_

    C#中,可以利用`XmlNode.SelectSingleNode()`方法找到指定的XPath路径,或者`XmlNode.SelectNodes()`方法获取所有匹配的节点。 3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成...

    Dom4j 、XPath解析Xml所需的jar包和dom4j API

    XPath的实现依赖于`jaxen-1.1.1.jar`,这是一个独立于XML解析器的XPath引擎,允许开发者在各种XML API(如DOM、DOM4J、JDOM等)之间进行XPath查询。`jaxen-1.1.1.jar`使得DOM4J能够支持XPath表达式,从而更方便地...

    Dem4j集合XPath解析XML

    在Dem4j中,我们可以使用`Element`对象的`selectNodes()`方法,传入XPath表达式来获取匹配的节点集合。 对于相对路径和绝对路径的匹配原则,有以下几点关键点: 1. **`.`表示当前节点**:在XPath表达式中,`.`表示...

    dom4j中XPath用法

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

    Dom4J采用XPath操纵XML教程及例子

    在处理XML文档时,XPath(XML Path Language)作为一种强大的查询语言,能够帮助我们快速定位到XML文档中的特定节点。本教程将重点介绍如何使用Java中的Dom4J库,结合XPath来高效地操作XML。 首先,让我们了解Dom4J...

    MSXML: XPATH

    XPath 2.0保留了与1.0版本的向后兼容性,同时增强了易用性,提供了更好的字符串处理和匹配功能,并引入了对XML Schema的支持。这使得开发者可以选择具有特定类型的元素,如类型为`double`的数值元素。 XPath 2.0还...

Global site tag (gtag.js) - Google Analytics