

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Collections;
using System.Web;
using System.Web.UI;
namespace XMLAction
{
public class XMLActionXML
{
public XMLActionXML(string FileName)
{
this.filename = FileName;
}
/// <summary>
/// 错讯
/// </summary>
public string errMessage = string.Empty;
private string filename = string.Empty;
/// <summary>
/// 修改结点的值和属性
/// </summary>
/// <param name="xpath">xpath</param>
/// <param name="value">值</param>
/// <param name="Attributes">属性组</param>
/// <returns></returns>
public bool SetSelectSingleNodeInnerXml(string xpath, string value, SortedList<string,string> Attributes)
{
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(filename);
XmlNode root = xmldoc.SelectSingleNode(xpath);
Page p = new Page();
if (Attributes != null)
{
foreach (KeyValuePair<string, string> k in Attributes)
{
root.Attributes[k.Key].Value =p.Server.HtmlEncode(k.Value);
}
}
root.InnerXml =p.Server.HtmlEncode(value);
xmldoc.Save(filename);
return true;
}
catch(Exception ex)
{
errMessage = ex.Message;
return false;
}
}
/// <summary>
/// 修改结点的值和属性
/// </summary>
/// <param name="xpath">xpath</param>
/// <param name="value">值</param>
/// <returns></returns>
public bool SetSelectSingleNodeInnerXml(string xpath, string value)
{
return SetSelectSingleNodeInnerXml(xpath, value, null);
}
/// <summary>
/// 获取结点的值和属性
/// </summary>
/// <param name="xpath">xpath</param>
/// <param name="value">值</param>
/// <param name="Attributes">属性</param>
/// <returns></returns>
public void GetSelectSingleNodeInnerXml(string xpath, ref string InnerXml, ref SortedList<string, string> Attributes)
{
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(filename);
XmlNode root = xmldoc.SelectSingleNode(xpath);
Page p = new Page();
if (Attributes!=null)
{
foreach (XmlAttribute k in root.Attributes)
{
if(!Attributes.ContainsKey(k.Name))
{
Attributes.Add(k.Name,p.Server.HtmlDecode(k.Value));
}
}
}
InnerXml = p.Server.HtmlDecode(root.InnerXml);
}
catch (Exception ex)
{
errMessage = ex.Message;
}
}
/// <summary>
/// 获取结点的值和属性
/// </summary>
/// <param name="xpath">xpath</param>
/// <param name="value">值</param>
public void GetSelectSingleNodeInnerXml(string xpath, ref string value)
{
SortedList<string, string> ss = new SortedList<string, string>();
GetSelectSingleNodeInnerXml(xpath,ref value,ref ss);
}
}
}