XmlDocument类:
用于xml文档的操作类,可以为xml文件进行增删改查操作
也有人用于操作web.config,但不建议操作
文件的创建
//初始化xmlDocument
XmlDocument xmldoc = new XmlDocument();
//加载指定目录下的xml文件
xmldoc.Load($"{HttpRuntime.AppDomainAppPath}\\Web.Xml");
//创建xml
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xmldecl);
//创建根元素
var rootElement = xmldoc.CreateElement("password");
xmldoc.AppendChild(rootElement);
xmldoc.Save(webconfigPath);
1.XmlDeclaration 类用于定义xml文件头部的定义,包括版本,编码模式,例如
<?xml version="1.0" encoding="utf-8"?>
2.xmldoc.CreateElement表示创建元素,当直接使用xmlDoc对象进行append时,表示增加根节点。
值得注意的是,xml文件新建时,必须要有根元素,否则会提示没有根结点的错误
3. xmldoc.Save只要对文件进行了更改,必须要save才能生效
判断节点
1.判断节点是否存在
//查询节点是否存在
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode(key);
if (node == null)
{
return "";
}
else
{
return node.InnerText;
}
innerText表示内在的数据,如果还有子节点,则会展示内部节点的数据,依次往内查询
此处的查询节点是否存在,只是查询根节点之后的数据
想要查询根节点的名称,使用localName查询
xmlDoc.DocumentElement.LocalName
增加节点
var xmlElem = xmlDoc.DocumentElement;//获取根节点
var bodyElement = xmlElem.SelectSingleNode(key);//取根节点
if (bodyElement == null)
{
//给根节点新增子节点,即账号密码
XmlElement childElement = xmlDoc.CreateElement(key);
childElement.InnerText = value;
xmlElem.AppendChild(childElement);
xmlDoc.Save(webconfigPath);
}
else
{
bodyElement.InnerText = value;
xmlDoc.Save(webconfigPath);
}
新增节点与新增根节点类似,唯二不同的是,1.根节点一般不会设定数据。2.增加根节点使用XmlDocument对象,但是增加子节点使用XmlElement对象(即找出来的对应节点的对象),当然XmlNode也是可以的