在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表達式以執行不同的查詢。