Слияние кода завершено, страница обновится автоматически
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace LunarSF.SHomeWorkshop.LunarMarkdownEditor
{
/// <summary>
/// 用于管理 Xml 配置文件。
/// </summary>
public class XmlConfigManager
{
private string fileName;
/// <summary>
/// 配置文件的完整路径。
/// </summary>
public string FileName
{
get { return this.fileName; }
set { this.fileName = value; }
}
private XmlDocument xmlDocument;
/// <summary>
/// 打开配置文件(xml)。
/// </summary>
/// <returns>文件存在并打开,返回true;文件不存在并创建,返回false。</returns>
public bool Open()
{
try
{
xmlDocument.Load(fileName);
}
catch (Exception)
{
//如果文件不存在,就创建一个新文件。
XmlTextWriter xmlWriter = new XmlTextWriter(fileName, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("Root");
//如果像上面这样使用WriteProcessingInstruction,
//这里就不使用WriteEndElement()
//xmlWriter.WriteEndElement();
//这会导致<Root></Root>变成<Root />
xmlWriter.Close();
xmlDocument.Load(fileName);
return false;
}
return true;
}
/// <summary>
/// [构造方法]创建一个 Xml 配置文件管理器。
/// </summary>
/// <param name="fileName">Xml 配置文件的完整路径。</param>
public XmlConfigManager(string fileName)
{
this.fileName = fileName;
xmlDocument = new XmlDocument();
this.Open();
}
///// <summary>
///// 难得看到的析构函数。
///// </summary>
//~XmlConfigManager()
//{
// Save();
//}
/// <summary>
/// 保存 Xml 配置文件。
/// </summary>
public void Save()
{
xmlDocument.Save(fileName);
}
/// <summary>
/// 根据配置项的名称取配置项的值。如果不存在,返回null。
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string Get(string name)
{
XmlNode node = xmlDocument.SelectSingleNode("Root").SelectSingleNode(name);
if (node == null)
{
return null;
}
else
{
return node.InnerText;
}
}
/// <summary>
/// 根据指定的配置项的名称设置该项的值。如果不存在这个名称的配置项,就新增一个。
/// </summary>
/// <param name="name">配置项的名称。</param>
/// <param name="value">配置项的值。</param>
public void Set(string name, string value)
{
XmlNode root = xmlDocument.SelectSingleNode("Root");
XmlNode node = root.SelectSingleNode(name);
if (node != null)
{
node.InnerText = value;
}
else
{
XmlElement element = xmlDocument.CreateElement(name);
element.InnerText = value;
root.AppendChild(element);
}
Save();
}
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )