1:带有一个路径的参数构造方法
2:创建XML的根节点方法
3:新增节点方法
4:删除节点方法
5:保存XML文件方法
6:创建根节点对象方法
7:获取指定XPath表达式节点的值方法
8:获取指定XPath表达式节点的属性值方法
9:获取指定XPath表达式的节点对象方法
public class SysHelper
{
#region 字段定义
/// 路径
private string filePath = string.Empty;
private XmlDocument xml;
private XmlElement element;
#endregion
#region 构造方法
/// 实例化XmlHelper对象
public void XmlHelper(string xmlFilePath)
{
//获取XML文件的绝对路径
filePath = SysHelper.GetPhysicalPath(xmlFilePath);
}
#endregion
#region 创建XML的根节点
/// <summary>
/// 创建XML的根节点
/// </summary>
private void CreateXMLElement()
{
//检测缓存中是否存在指定文件名的XmlDocument对象
if (CacheHelper.Contains(filePath))
{
//如果存在,则从缓存中读取
xml = CacheHelper.GetCache<XmlDocument>(filePath);
}
else
{
//创建一个XML对象
xml = new XmlDocument();
if (FileHelper.IsExistFile(filePath))
{
//加载XML文件
xml.Load(this.filePath);
//将XmlDocument对象放入缓存
CacheHelper.SetCache<XmlDocument>(filePath, xml, filePath);
}
}
//为XML的根节点赋值
element = xml.DocumentElement;
}
#endregion
#region 新增节点
/// 1. 功能:新增节点。
/// 2. 使用条件:将任意节点插入到当前Xml文件中。
/// <param name="xmlNode">要插入的Xml节点</param>
public void AppendNode(XmlNode xmlNode)
{
//创建XML的根节点
CreateXMLElement();
//导入节点
XmlNode node = xml.ImportNode(xmlNode, true);
//将节点插入到根节点下
element.AppendChild(node);
}
public void AppendNode(DataSet ds)
{
//创建XmlDataDocument对象
XmlDataDocument xmlDataDocument = new XmlDataDocument(ds);
//导入节点
XmlNode node = xmlDataDocument.DocumentElement.FirstChild;
//将节点插入到根节点下
AppendNode(node);
}
#endregion
#region 删除节点
/// 删除指定XPath表达式的节点
/// <param name="xPath">XPath表达式,
public void RemoveNode(string xPath)
{
//创建XML的根节点
CreateXMLElement();
//获取要删除的节点
XmlNode node = xml.SelectSingleNode(xPath);
//删除节点
element.RemoveChild(node);
}
#endregion //删除节点
#region 保存XML文件
/// <summary>
/// 保存XML文件
/// </summary>
public void Save()
{
//创建XML的根节点
CreateXMLElement();
//保存XML文件
xml.Save(this.filePath);
}
#endregion //保存XML文件
#region 创建根节点对象
/// <summary>
/// 创建根节点对象
/// </summary>
/// <param name="xmlFilePath">Xml文件的相对路径</param>
private static XmlElement CreateRootElement(string xmlFilePath)
{
//定义变量,表示XML文件的绝对路径
string filePath = "";
//获取XML文件的绝对路径
filePath = SysHelper.GetPhysicalPath(xmlFilePath);
//创建XmlDocument对象
XmlDocument xmlDocument = new XmlDocument();
//加载XML文件
xmlDocument.Load(filePath);
//返回根节点
return xmlDocument.DocumentElement;
}
#endregion
#region 获取指定XPath表达式节点的值
/// <summary>
/// 获取指定XPath表达式节点的值
/// </summary>
public string GetValue(string xPath)
{
//创建XML的根节点
CreateXMLElement();
//返回XPath节点的值
return element.SelectSingleNode(xPath).InnerText;
}
#endregion
#region 获取指定XPath表达式节点的属性值
/// <summary>
/// 获取指定XPath表达式节点的属性值
/// </summary>
/// <param name="xPath">XPath表达式,
/// <param name="attributeName">属性名</param>
public string GetAttributeValue(string xPath, string attributeName)
{
//创建XML的根节点
CreateXMLElement();
//返回XPath节点的属性值
return element.SelectSingleNode(xPath).Attributes[attributeName].Value;
}
#endregion
#region 获取指定XPath表达式的节点对象
/// <summary>
/// 获取指定XPath表达式的节点对象
/// </summary>
/// <param name="xPath">XPath表达式,
public XmlNode GetNode(string xPath)
{
//创建XML的根节点
CreateXMLElement();
//返回XPath节点
return element.SelectSingleNode(xPath);
}
#endregion