C# 从XML文件查询读取

#@TOC

C# 从XML文件查询读取

XML文件里面定义了树状结构的对象和特征,检索一定特征的对象,并罗列起来,可以这样做

元素定义

这个讲解最清晰:
[https://www.w3schools.com/xml/dom_intro.asp]
根元素 >> 元素>>…>>元素层次关系,如:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
...

bookstore: root element
book: element
title: element
lang=‘en’: 是title的属性
2005是 element year的innertext不是属性
这里解释

读取文件

用XmlDocumant类即可

XmlDocument doc = new XmlDocument();
doc.Load(filepathString); //用文件路径string导入
XmlNodeList books = roadXML.GetElementsByTagName("book"); //读取全部book元素

读取一个元素

例如读取第一本书的作者 (继上例子)

string author = books[0].SelectSingleNode("author").InnerText;

查找一个子元素满足条件的元素

这是关键方法,但是文档不清晰
XmlNode.SelectSingleNode
这里是技术关键:要用XPath,但是没有解释怎么用XPath.
SelectNodes Using XPath Navigation
XPath不复杂,看这个就懂了
XPath语法

例子 查找列表第一个作者为Giada De Laurentiis的书名

string bookName = doc.SelectSingleNode(@"bookstore/book[author='Giada De Laurentiis']/title").InnerText;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中操作XML文件需要使用System.Xml命名空间下的类。 以下是一个简单的示例,演示如何将数据写入XML文件并从中读取数据: ```csharp using System; using System.Xml; class Program { static void Main(string[] args) { // 创建XML文档对象 XmlDocument xmlDoc = new XmlDocument(); // 创建XML声明 XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // 添加XML声明到XML文档 xmlDoc.AppendChild(xmlDec); // 创建根元素 XmlElement root = xmlDoc.CreateElement("students"); // 将根元素添加到XML文档 xmlDoc.AppendChild(root); // 创建子元素 XmlElement student = xmlDoc.CreateElement("student"); XmlAttribute id = xmlDoc.CreateAttribute("id"); id.Value = "001"; student.Attributes.Append(id); XmlElement name = xmlDoc.CreateElement("name"); name.InnerText = "Tom"; student.AppendChild(name); XmlElement age = xmlDoc.CreateElement("age"); age.InnerText = "18"; student.AppendChild(age); // 将子元素添加到根元素 root.AppendChild(student); // 保存XML文档 xmlDoc.Save("students.xml"); // 读取XML文档 xmlDoc.Load("students.xml"); // 获取根元素 root = xmlDoc.DocumentElement; // 遍历子元素 foreach (XmlElement ele in root.ChildNodes) { Console.WriteLine("Student ID: " + ele.Attributes["id"].Value); Console.WriteLine("Name: " + ele["name"].InnerText); Console.WriteLine("Age: " + ele["age"].InnerText); } Console.ReadLine(); } } ``` 上述代码将创建一个名为“students.xml”的XML文件,其中包含一个名为“students”的根元素和一个名为“student”的子元素。程序会将数据写入该文件,然后从文件读取数据并将其打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值