csharp,using System;,using System.Xml;,,class Program,{, static void Main(), {, XmlDocument doc = new XmlDocument();, doc.Load("example.xml");, XmlNodeList nodes = doc.GetElementsByTagName("example");, foreach (XmlNode node in nodes), {, Console.WriteLine(node.InnerText);, }, },},“C 读取 XML 文件内容

XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它可以表示结构化数据,在 C 中,我们可以使用 System.Xml 命名空间中的类来读取和操作 XML 文件,本文将介绍如何使用 C 读取 XML 文件内容。
XmlDocument 类是 System.Xml 命名空间中的一个类,它表示整个 XML 文档,我们可以使用 XmlDocument 类的 Load() 方法从文件中加载 XML 文档,然后使用 SelectSingleNode()、SelectNodes() 和 SelectSingleElement() 方法来查询 XML 文档中的节点。
以下是一个简单的示例:
using System;
using System.Xml;
class Program
{
static void Main()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml"); // 从文件中加载 XML 文档
XmlNodeList nodeList = xmlDoc.SelectNodes("//book"); // 查询所有的 book 节点
foreach (XmlNode node in nodeList)
{
Console.WriteLine("书名: " + node["title"].InnerText);
Console.WriteLine("作者: " + node["author"].InnerText);
Console.WriteLine("价格: " + node["price"].InnerText);
Console.WriteLine();
}
}
}
XPathNavigator 类是 System.Xml.XPath 命名空间中的一个类,它表示 XML 文档中的一个节点,我们可以使用 XPathNavigator 类的方法来遍历 XML 文档中的节点。
以下是一个简单的示例:
using System;
using System.Xml;
using System.Xml.XPath;
class Program
{
static void Main()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("example.xml"); // 从文件中加载 XML 文档
XPathNavigator navigator = xmlDoc.CreateNavigator(); // 创建一个 XPathNavigator 对象
navigator.MoveToRoot(); // 将导航器移动到根节点
navigator.MoveToChild("book"); // 将导航器移动到第一个 book 节点
while (!navigator.IsEOF) // 当导航器没有到达文档末尾时循环
{
string title = navigator.Value; // 获取书名节点的值并赋给变量 title
Console.WriteLine("书名: " + title);
navigator.MoveToNext(); // 将导航器移动到下一个兄弟节点
}
}
}
XElement 类是 System.Xml.Linq 命名空间中的一个类,它表示 XML 文档中的一个元素,我们可以使用 XElement 类和 LINQ to XML API(LINQ)来查询和操作 XML 文档。
以下是一个简单的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
XDocument doc = XDocument.Load("example.xml"); // 从文件中加载 XML 文档
List titles = doc.Descendants("book") // 查询所有 book 元素的书名节点的值并存储在一个列表中
.Select(x => x.Element("title").Value)
.ToList();
foreach (string title in titles)
{
Console.WriteLine("书名: " + title);
}
}
}
1、如何处理 XML 文档中的命名空间?答:在查询 XML 文档时,需要使用带有命名空间前缀的标签,如果有以下 XML 文档:
Book One