在C#中,要使用XPath來查詢XML文檔,你需要使用System.Xml
或System.Xml.Linq
命名空間中的類。以下是兩種方法的示例:
方法1:使用System.Xml命名空間
using System;
using System.Xml;
class Program
{
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>
</books>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNodeList bookList = doc.SelectNodes("//book");
foreach (XmlNode book in bookList)
{
Console.WriteLine("Book ID: " + book.Attributes["id"].Value);
Console.WriteLine("Title: " + book.SelectSingleNode("title").InnerText);
Console.WriteLine("Author: " + book.SelectSingleNode("author").InnerText);
Console.WriteLine();
}
}
}
方法2:使用System.Xml.Linq命名空間
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
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>
</books>";
XDocument doc = XDocument.Parse(xml);
var bookList = doc.Descendants("book");
foreach (var book in bookList)
{
Console.WriteLine("Book ID: " + book.Attribute("id").Value);
Console.WriteLine("Title: " + book.Element("title").Value);
Console.WriteLine("Author: " + book.Element("author").Value);
Console.WriteLine();
}
}
}
在這兩個示例中,我們首先創建了一個包含書籍信息的XML字符串。然后,我們分別使用XmlDocument
和XDocument
類加載XML字符串,并使用XPath查詢(//book
)來獲取所有書籍節點。最后,我們遍歷查詢結果并輸出書籍的ID、標題和作者。