温馨提示×

c# xpath案例分析

c#
小樊
104
2024-09-19 19:58:28
栏目: 编程语言

在C#中,使用System.Xml.XPath命名空间可以方便地处理XPath表达式

假设我们有以下XML文档:

<?xml version="1.0" encoding="UTF-8"?> <books> <book id="1"> <title>Book 1</title> <author>Author 1</author> </book> <book id="2"> <title>Book 2</title> <author>Author 2</author> </book> <book id="3"> <title>Book 3</title> <author>Author 3</author> </book> </books> 

现在,我们将使用C#和XPath表达式来查询此XML文档。

  1. 选择所有书籍的标题:
using System; using System.Xml; using System.Xml.XPath; class XPathExample { static void Main() { string xml = @" <books> <book id='1'> <title>Book 1</title> <author>Author 1</author> </book> <book id='2'> <title>Book 2</title> <author>Author 2</author> </book> <book id='3'> <title>Book 3</title> <author>Author 3</author> </book> </books>"; XPathDocument doc = new XPathDocument(xml); XPathNavigator navigator = doc.CreateNavigator(); XPathExpression expr = navigator.Compile("//title"); XPathNodeIterator iterator = expr.Select(); Console.WriteLine("Book titles:"); while (iterator.MoveNext()) { Console.WriteLine(iterator.Current.Value); } } } 

输出:

Book titles: Book 1 Book 2 Book 3 
  1. 根据书籍ID选择书籍:
using System; using System.Xml; using System.Xml.XPath; class XPathExample { static void Main() { string xml = @" <books> <book id='1'> <title>Book 1</title> <author>Author 1</author> </book> <book id='2'> <title>Book 2</title> <author>Author 2</author> </book> <book id='3'> <title>Book 3</title> <author>Author 3</author> </book> </books>"; XPathDocument doc = new XPathDocument(xml); XPathNavigator navigator = doc.CreateNavigator(); XPathExpression expr = navigator.Compile("//book[@id='2']"); XPathNodeIterator iterator = expr.Select(); Console.WriteLine("Book with ID 2:"); while (iterator.MoveNext()) { Console.WriteLine(iterator.Current.Value); } } } 

输出:

Book with ID 2: Book 2 Author 2 

这些示例展示了如何使用C#和XPath表达式查询XML文档。您可以根据需要修改这些示例以满足您的实际需求。

0