转自:http://www.360doc.com/content/13/0905/20/1944636_312482651.shtml
public
class
XmlHelper
{
public
XmlHelper()
{
}
public
enum
XmlType
{
File,
String
};
/// <summary>
/// 创建XML文档
/// </summary>
/// <param name="name">根节点名称</param>
/// <param name="type">根节点的一个属性值</param>
/// <returns></returns>
/// document = XmlOperate.CreateXmlDocument("sex","sexy");
/// document.Save("c:/bookstore.xml");
public
static
XmlDocument CreateXmlDocument(
string
name,
string
type )
{
XmlDocument doc =
null
;
XmlElement rootEle =
null
;
try
{
doc =
new
XmlDocument();
doc.LoadXml(
"<"
+ name +
"/>"
);
rootEle = doc.DocumentElement;
rootEle.SetAttribute(
"type"
,type );
}
catch
(Exception er)
{
throw
er;
}
return
doc;
}
/// <summary>
/// 读取数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <returns>string</returns>
/**************************************************
* 使用示列:
* XmlHelper.Read(path,"/Node","")
* XmlHelper.Read(path,"/Node/Element[@Attribute='Name']","Attribute")
************************************************/
public
static
string
Read(
string
path,
string
node,
string
attribute )
{
string
value =
""
;
try
{
XmlDocument doc =
new
XmlDocument();
doc.Load( path );
XmlNode xn = doc.SelectSingleNode( node );
value = (attribute.Equals(
""
) ? xn.InnerText : xn.Attributes[attribute].Value);
}
catch
{ }
return
value;
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Insert(path,"Element","","Value")
* XmlHelper.Insert(path,"Attribute","Value")
* XmlHelper.Insert(path,"Value")
************************************************/
public
static
void
Insert(
string
path,
string
element,
string
attribute,
string
value )
{
try
{
XmlDocument doc =
new
XmlDocument();
doc.Load( path );
XmlNode xn = doc.SelectSingleNode( node );
if
(element.Equals(
""
))
{
if
(!attribute.Equals(
""
))
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute( attribute,value );
}
}
else
{
XmlElement xe = doc.CreateElement( element );
if
(attribute.Equals(
""
))
xe.InnerText = value;
else
xe.SetAttribute( attribute,value );
xn.AppendChild( xe );
}
doc.Save( path );
}
catch
{ }
}
/// <summary>
/// 修改数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Insert(path,"Value")
* XmlHelper.Insert(path,"Value")
************************************************/
public
static
void
Update(
string
path,
string
value )
{
try
{
XmlDocument doc =
new
XmlDocument();
doc.Load( path );
XmlNode xn = doc.SelectSingleNode( node );
XmlElement xe = (XmlElement)xn;
if
(attribute.Equals(
""
))
xe.InnerText = value;
else
xe.SetAttribute( attribute,value );
doc.Save( path );
}
catch
{ }
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Delete(path,"")
* XmlHelper.Delete(path,"Attribute")
************************************************/
public
static
void
Delete(
string
path,
string
attribute )
{
try
{
XmlDocument doc =
new
XmlDocument();
doc.Load( path );
XmlNode xn = doc.SelectSingleNode( node );
XmlElement xe = (XmlElement)xn;
if
(attribute.Equals(
""
))
xn.ParentNode.RemoveChild( xn );
else
xe.RemoveAttribute( attribute );
doc.Save( path );
}
catch
{ }
}
#region 读取XML资源到DataSet中
/// <summary>
/// 读取XML资源到DataSet中
/// </summary>
/// <param name="source">XML资源,文件为路径,否则为XML字符串</param>
/// <param name="xmlType">XML资源类型</param>
/// <returns>DataSet</returns>
public
static
DataSet GetDataSet(
string
source,XmlType xmlType )
{
DataSet ds =
new
DataSet();
if
(xmlType == XmlType.File)
{
ds.ReadXml( source );
}
else
{
XmlDocument xd =
new
XmlDocument();
xd.LoadXml( source );
XmlNodeReader xnr =
new
XmlNodeReader( xd );
ds.ReadXml( xnr );
}
return
ds;
}
#endregion
#region 操作xml文件中指定节点的数据
/// <summary>
/// 获得xml文件中指定节点的节点数据
/// </summary>
/// <param name="TableName"></param>
/// <returns></returns>
public
static
string
GetNodeInfoByNodeName(
string
path,
string
nodeName )
{
string
XmlString =
""
;
XmlDocument xml =
new
XmlDocument();
xml.Load( path );
System.Xml.XmlElement root = xml.DocumentElement;
System.Xml.XmlNode node = root.SelectSingleNode(
"//"
+ nodeName );
if
(node !=
null
)
{
XmlString = node.InnerText;