以下是 "C# 通过 XPath 读取 XML" 的完整攻略:
示例 1:读取 XML 文档中的数据
假设我们有一个名为 "sample.xml" 的 XML 文件,其内容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
我们可以使用以下代码从该文件中读取特定的元素:
using System;
using System.Xml;
namespace ReadXML
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load("sample.xml");
XmlNodeList bookList = doc.SelectNodes("//book");
foreach (XmlNode book in bookList)
{
string category = book.Attributes["category"].Value;
string title = book.SelectSingleNode("title").InnerText;
string author = book.SelectSingleNode("author").InnerText;
string year = book.SelectSingleNode("year").InnerText;
string price = book.SelectSingleNode("price").InnerText;
Console.WriteLine("Category: {0}", category);
Console.WriteLine("Title: {0}", title);
Console.WriteLine("Author: {0}", author);
Console.WriteLine("Year: {0}", year);
Console.WriteLine("Price: {0}", price);
}
}
}
}
这段代码首先创建了一个 XmlDocument 对象并加载了文件 "sample.xml"。然后,它使用 XPath 选择所有名为 "book" 的元素,以便对这些元素进行迭代。在每次迭代中,我们首先读取元素 "book" 的 "category" 属性,并使用 SelectSingleNode 方法获取 "title"、"author"、"year" 和 "price" 元素的文本内容。最后,我们将这些值打印到控制台。
在运行该应用程序后,我们会看到以下输出:
Category: children
Title: Harry Potter
Author: J.K. Rowling
Year: 2005
Price: 29.99
Category: web
Title: Learning XML
Author: Erik T. Ray
Year: 2003
Price: 39.95
示例 2:使用 XPath 获取 XML 中的节点集合
假设我们有另一个名为 "sample2.xml" 的 XML 文件,其内容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person>
<name>John Smith</name>
<age>35</age>
</person>
<person>
<name>Jane Doe</name>
<age>25</age>
</person>
<person>
<name>Bob Johnson</name>
<age>42</age>
</person>
</people>
我们可以使用以下代码获取所有 "person" 元素的 "name" 子元素:
using System;
using System.Xml;
namespace ReadXML
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load("sample2.xml");
XmlNodeList nameList = doc.SelectNodes("//person/name");
foreach (XmlNode name in nameList)
{
Console.WriteLine(name.InnerText);
}
}
}
}
这段代码与前面的示例相似,但是它使用了不同的 XPath 表达式 "//person/name",它选择所有名为 "person" 的元素并且在每个 "person" 元素内部选择名为 "name" 的子元素。最后,我们打印了每个 "name" 元素的文本内容。
在运行该应用程序后,我们会看到以下输出:
John Smith
Jane Doe
Bob Johnson
以上就是 "C# 通过 XPath 读取 XML" 的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#通过xpath读取xml示例 - Python技术站