一)XML的官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.xml?view=netcore-3.1
先放一下XML表的介绍
二)常见函数介绍:
(1)GetElementsByTagName()
这函数有两个重载:
实现:
static void findXmlFile(string path)
{
XmlDocument doc = new XmlDocument();
//载入文件
try
{
doc.Load(@path);
}
catch (System.Xml.XmlException)
{
throw new Exception("load fail");
}
XmlElement player = (XmlElement)doc.SelectSingleNode("player");
if (player == null) throw new Exception("do not find sonNode");
XmlNodeList songleItemList = player.GetElementsByTagName("sword");
Console.WriteLine(songleItemList.Count);
}
结果为3
该函数是查找节点下(包括节点的节点)名称相同的节点并返回一个链表。
第二个重载
(2)
该函数返回一个Type类型。由于基类Object就有GetType()函数,
官方示例:
个人示例:
Type类的介绍:
//记得书上有,一时没找到,补:
(3)
(4)节点的删除
(5)节点的替换
新节点在前,被替换的旧节点在后,
由旧节点的父节点调用函数,旧节点必须为父节点的子节点。效果如下:
(6)选择单个节点
(1)查找绝对路径的节点
XmlElement EquipmentChange = (XmlElement)doc.SelectSingleNode(@"player/player02/equipment");
(2)。。。。。
贴一片文章
https://www.cnblogs.com/love201314/p/5589784.html
(7)
SetAttribute(String, String) 设置具有指定名称的特性的值。
SetAttribute(String, String, String) 设置具有指定本地名称和命名空间 URI 的特性的值。
SetAttributeNode(String, String) 添加指定的 XmlAttribute。
SetAttributeNode(XmlAttribute) 添加指定的 XmlAttribute。
(8)拓展方法
Cast(IEnumerable) 将 IEnumerable 的元素强制转换为指定的类型。
OfType(IEnumerable) 根据指定类型筛选 IEnumerable 的元素。
AsParallel(IEnumerable) 启用查询的并行化。
AsQueryable(IEnumerable) 将 IEnumerable 转换为 IQueryable。
(9)再补