`
isiqi
  • 浏览: 16354539 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何用 XPath 表达式查询 XML

阅读更多

本文演示如何使用 XPathNavigator 类通过 XML 路径语言 (XPath) 表达式查询 XPathDocument 对象。XPath 用于以编程方式计算表达式并选择文档中的特定节点。

要求

下面的列表列出了推荐使用的硬件、软件、网络基础结构以及所需的服务包:

Visual C# .NET

本文假定您熟悉下列主题:

XML 术语
创建和读取 XML 文件
XPath 语法

返回页首

如何用 XPath 表达式查询 XML

1. 在 Visual Studio .NET 中新建一个 Visual C# .NET 控制台应用程序。

备注 : 本示例使用名为 Books.xml 的文件。您可以创建自己的 Books.xml 文件,也可以使用 .NET 软件开发工具包 (SDK) 快速入门中包括的示例。如果您没有安装"快速入门"而且也不想安装它们,请参阅 Books.xml 下载位置的"参考"部分。如果已经安装了"快速入门",则该文件位于以下文件夹中:
Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
必须将该文件复制到 \Bin\Debug 文件夹,该文件夹位于您在其中创建该项目的文件夹中。
2. 确保该项目引用 System.Xml 名称空间。
3. XmlXPath 名称空间上使用 using 语句,这样以后就不需要在代码中限定这些名称空间中的声明了。using 语句必须在所有其他声明之前使用,如下所示:
using System.Xml;
using System.Xml.XPath;
4. 声明合适的变量。声明 XPathDocument 对象以保存 XML 文档,声明 XpathNavigator 对象以计算 XPath 表达式,声明 XPathNodeIterator 对象以迭代通过选定节点。声明 String 对象以保存 XPath 表达式。在 Class1 的 Main 函数中添加声明代码。
XPathNavigator nav;
XPathDocument docNav;
XPathNodeIterator NodeIter;
String strExpression;
5. 用示例文件 Books.xml 加载 XPathDocumentXPathDocument 类使用可扩展样式表语言转换 (XSLT) 为 XML 文档处理提供快速和面向性能的缓存。它类似于 XML 文档对象模型 (DOM),但经过了高度优化,以用于 XSLT 处理和 XPath 数据模型。
// Open the XML.
docNav = new XPathDocument(@"c:\books.xml");
6. 从文档创建 XPathNavigatorXPathNavigator 对象用于进行只读 XPath 查询。XPath 查询可返回结果值或许多节点。
// Create a navigator to query with XPath.
nav = docNav.CreateNavigator();
7. 创建 XPath 表达式以查找图书的平均价格。这个 XPath 表达式返回单个值。有关 XPath 语法的完整详细信息,请参见"参考"部分中的"XPath 语法"。
// Find the average cost of a book.
// This expression uses standard XPath syntax.
strExpression = "sum(/bookstore/book/price) div count(/bookstore/book/price)";
8. 使用 XPathNavigator 对象的 Evaluate 方法计算 XPath 表达式。Evaluate 方法返回该表达式的结果。
// Use the Evaluate method to return the evaluated expression.
Console.WriteLine("The average cost of the books are {0}", nav.Evaluate(strExpression));
9. 创建 XPath 表达式以查找价格超过 10 美元的所有图书。这个 XPath 表达式只从 XML 源中返回 Title 节点。
// Find the title of the books that are greater then $10.00.
strExpression = "/bookstore/book/title[../price>10.00]";
10. 为使用 XPathNavigatorSelect 方法选择的节点创建 XPathNodeIteratorXPathNodeIterator 表示 XPath 节点集,因此它支持针对该节点集执行的操作。
// Select the node and place the results in an iterator.
NodeIter = nav.Select(strExpression);
11. 使用从 XPathNavigatorSelect 方法返回的 XPathNodeIterator 遍历选定的节点。在这种情况下,可使用 XPathNodeIteratorMoveNext 方法迭代通过选定的所有节点。
Console.WriteLine("List of expensive books:");
//Iterate through the results showing the element value.
while (NodeIter.MoveNext())
{
Console.WriteLine("Book Title:{0}", NodeIter.Current.Value);
};
12. 使用 ReadLine 方法在控制台显示的末尾添加 pause,以便更容易地显示上述结果。
//Pause
Console.ReadLine();
13. 生成并运行您的项目。请注意,这些结果显示在控制台窗口中。
分享到:
评论

相关推荐

    用XPath 表达式从 XML 文档中提取信息

    例如,在Python的`lxml`库中,可以使用`xpath()`方法执行XPath表达式来选取XML元素。 在"xpath学习.doc"文档中,可能详细介绍了XPath的语法、使用方法、示例以及常见问题解决策略。通过阅读这份文档,你可以深入...

    xpath表达式测试小工具

    这款“XPath表达式测试小工具”显然是为了帮助开发者和XML爱好者更方便地测试和验证XPath表达式的正确性。 在XML文档中,XPath表达式可以用来选取节点集、单个节点、文本值或者布尔值。其基本语法包括路径表达式、...

    基于Xpath的xml文件查询和更新

    Xpath(XML Path Language)则是用来在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,如元素、属性、文本等。在本主题中,我们将深入探讨基于Xpath的XML文件查询和更新。 **Xpath基本概念** 1. *...

    XmlHelper XPath路径表达式选取XML节点

    XPath路径表达式选取XML节点.doc 为XML中常用属性说明 XmlHelper.CS 一个类文件 包括对XML 文件的常规操作 xml字符串转换为dataTable DataTable 转换为xml 找出所有与pPath匹配路径的节点创建dataTable,并设置...

    Xpath 表达式教程

    XPath表达式的灵活性使得它在处理XML文档时非常强大,可以方便地进行节点选取、数据提取以及复杂的条件过滤。通过熟练掌握XPath,开发者能更高效地操作和解析XML数据,从而在XML相关的开发工作中发挥重要作用。

    XPath路径表达式详解

    在实际应用中,XPath 路径表达式可以应用于 DOM、XSLT 和 XQuery 等领域,用于定位节点、解析 XML 文档、实现数据转换和查询等操作。 XPath 路径表达式是 XML 文档处理的重要工具,可以帮助开发者快速、准确地定位...

    xpath读取XML节点

    5. **执行XPath查询**:使用`evaluate`方法执行XPath表达式,并将其结果转换为适当的数据类型。例如,如果查询返回的是节点集,可以使用`NodeList`。 ```java String expression = "/root/element"; NodeList nodes...

    使用路径表达式在 XML 文档中进行导航(xpath简介)

    ### 使用路径表达式在 XML 文档中进行导航 (XPath 简介) #### 一、XPath 的定义 XPath 是一种用于查找 XML 文档中的信息的语言。它使用路径表达式来选择 XML 文档中的节点或集合节点。XPath 被设计为 XSLT、...

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

    // 执行XPath表达式并获取结果 List<Element> elements = xpath.selectNodes(document); for (Element book : elements) { System.out.println("Found book: " + book.attributeValue("title")); } } } ``` ...

    xpath表达式基本格式

    XPath 表达式是选择 XML 文件中节点的方法,节点是 XML 文件的最小构成单位,分为 7 种:element(元素节点)、attribute(属性节点)、text (文本节点)、namespace (名称空间节点)、processing-instruction ...

    表达式验证1.0[正则,xpath测试]

    在"表达式验证1.0"中,开发者可以输入XPath表达式,结合XML样本数据进行测试。工具会返回匹配的节点,方便用户验证查询是否正确。 该工具基于.NET Framework 3.5,这是一个由Microsoft开发的成熟且广泛使用的框架,...

    Java中使用xpath获取xml中的数据

    在实际应用中,可以根据需求灵活地构造XPath表达式,以高效地提取XML文档中的信息。记住,XPath是XML处理中的强大工具,合理使用能大大提高开发效率。在处理大型XML文档时,使用XPath配合Java进行数据提取,可以避免...

    Python xpath表达式如何实现数据处理

    xpath表达式 1. xpath语法 <title lang=eng>Harry Potter</title> <price>999 <title lang=eng>Learning XML</title> <price>888 1.1 选取节点 XPath 使用路径表达式来选取 ...

    xpath表达式完整实例

    ### Xpath表达式完整实例知识点解析 #### 一、Xpath基本概念 Xpath是一种用于在XML文档中查询和定位节点的语言。它提供了一种简洁有效的方式来选择文档中的元素和属性。 - **节点类型**: - **Element(元素节点...

    xpath表达式说明

    根据提供的文件信息,我们可以了解到XPath表达式的几个重要知识点: 1.XPath路径表达式的基本概念 XPath使用路径表达式来选取XML文档中的节点或者节点集。基本的XPath表达式包含有nodename,它用于选取所有特定的子...

    正则表达式+xml

    正则表达式(Regular Expression)和XML(eXtensible Markup Language)是IT领域中两种重要的技术。...在实际开发中,了解并熟练掌握正则表达式和XML的使用,能帮助我们更好地处理文本数据和结构化信息。

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

    例如,`XMLDocument.prototype.selectNodes`方法首先创建一个命名空间解析器,然后使用`evaluate()`方法执行XPath表达式,得到一个结果集,再将结果集转换为数组返回。`XMLDocument.prototype.selectSingleNode`方法...

    从XML文件抽出XPath - C and C++

    使用libxml2时,我们需要先用`xmlParseDoc()`解析XML,得到`xmlDocPtr`,然后调用`xmlXPathNewContext()`创建XPath上下文,接着使用`xmlXPathEvalExpression()`执行XPath表达式并获取结果集。 XPath表达式的语法...

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

    这个方法使用XPath表达式 `cXPathString` 在指定的节点 `xNode` 上执行查询,并返回一个包含匹配节点的数组。 ##### 2. 扩展Element ```javascript // 扩展Element原型以添加selectNodes方法 Element.prototype....

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

    这里的"your_xpath_expression"是你想要执行的XPath表达式,例如选取所有名为“element”的元素:“//element”。`selectNodes`方法将返回匹配表达式的节点列表。 对于更复杂的查询,XPath支持谓语,允许你在路径...

Global site tag (gtag.js) - Google Analytics