c# xpath动态查询

   2024-09-30 7290
核心提示:在C#中,可以使用System.Xml.XPath命名空间中的类和方法进行XPath动态查询。以下是一个简单的示例,展示了如何使用XPath动态查询

在C#中,可以使用System.Xml.XPath命名空间中的类和方法进行XPath动态查询。以下是一个简单的示例,展示了如何使用XPath动态查询XML文档。

首先,假设我们有以下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文档。首先,需要将XML文档加载到XmlDocument对象中:

XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load("books.xml");

现在,我们可以使用XPath表达式动态查询XML文档。例如,如果我们想要查找所有具有特定作者的书籍,可以使用以下代码:

string authorName = "Author 2";XPathExpression xPathExpression = XPathExpression.Compile("//book[author='" + authorName + "']");XmlNodeList bookList = xmlDoc.SelectNodes(xPathExpression);

在这个例子中,我们使用了XPathExpression.Compile方法来编译XPath表达式。然后,我们使用XmlDocument.SelectNodes方法执行XPath查询,并将结果存储在XmlNodeList对象中。

最后,我们可以遍历XmlNodeList对象并处理查询结果:

foreach (XmlNode bookNode in bookList){    string bookId = bookNode.Attributes["id"].Value;    string bookTitle = bookNode.SelectSingleNode("title").InnerText;    string bookAuthor = bookNode.SelectSingleNode("author").InnerText;    Console.WriteLine("Book ID: " + bookId);    Console.WriteLine("Book Title: " + bookTitle);    Console.WriteLine("Book Author: " + bookAuthor);    Console.WriteLine("------");}

这个示例展示了如何使用C#中的XPath动态查询XML文档。你可以根据需要修改XPath表达式以执行不同的查询。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号