62,067
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 生产一个XML文件
/// </summary>
/// <param name="xmlFilePath">XML文件名</param>
/// <param name="StartElement">根元素名</param>
private void CreateXMLFile(string xmlFilePath, string StartElement)
{
XmlTextWriter writer = new XmlTextWriter(xmlFilePath, Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement(StartElement);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
/// <summary>
/// 向XML文件中增加一个新的元素,属性,值
/// </summary>
/// <param name="xmlpath">XML文件名</param>
/// <param name="element">元素名</param>
/// <param name="attribut">属性名</param>
/// <param name="value">值</param>
/// <returns></returns>
public bool addXmlElement(string xmlpath, string element, string attribute, string value)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNode node = doc.SelectSingleNode("//" + element);
if (node == null)
{
XmlElement xElement = doc.CreateElement(element);
xElement.SetAttribute(attribute, value);
doc.DocumentElement.AppendChild(xElement);
}
else
{
try
{
if (node.Attributes[attribute] == null)
{
XmlAttribute newAttr = doc.CreateAttribute(attribute);
newAttr.Value = value;
node.Attributes.Append(newAttr);
}
else
{
string attributesvalue = node.Attributes[attribute].Value;
if (attributesvalue != null || attributesvalue != "")
{
node.Attributes[attribute].Value = value;
}
}
}
catch (Exception ex)
{
XmlAttribute newAttr = doc.CreateAttribute(attribute);
newAttr.Value = value;
node.Attributes.Append(newAttr);
}
}
doc.Save(xmlpath);
return true;
}
catch (Exception e)
{
return false;
}
}
/// <summary>
/// 更新XML文件中某个元素的属性值
/// </summary>
/// <param name="xmlpath">XML文件名</param>
/// <param name="element">元素名</param>
/// <param name="attribut">属性名</param>
/// <param name="value">值</param>
/// <returns></returns>
public bool updateValue(string xmlpath, string element, string attribute, string value)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNode node = doc.SelectSingleNode("//" + element);
node.Attributes[attribute].Value = value;
doc.Save(xmlpath);
return true;
}
catch (Exception ex)
{
if (addXmlElement(xmlpath, element, attribute, value))
return true;
else
return false;
}
}
/// <summary>
/// 从XML文件中读取某个元素的属性值
/// </summary>
/// <param name="xmlpath">XML文件名</param>
/// <param name="element">元素名</param>
/// <param name="attribut">属性名</param>
/// <param name="value">值</param>
/// <returns></returns>
public string readValue(string xmlpath, string element, string attribute, string value)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNode node = doc.SelectSingleNode("//" + element);
if (node.Attributes[attribute].Value.ToString() != "")
{
value = node.Attributes[attribute].Value;
}
else
{
addXmlElement(xmlpath, element, attribute, value);
}
return value;
}
catch (Exception ex)
{
if (addXmlElement(xmlpath, element, attribute, value))
return value;
else
return "";
}
}