在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、标题和作者。