在读取XML中每次循环遍历xml好麻烦,弄一个linq查询的方法封装起来 方便,快捷,舒服
不过最后一个xml的属性问题,总是想不到用什么更好的方法解决,各路大神求给意见
/// <summary>
///获取xml指定节点的值
/// </summary>
/// <param name="path">xml路径</param>
/// <param name="xmlElement">节点名称</param>
/// <param name="xmlAttribute">节点属性</param>
/// <returns></returns>
private static string getXmlValue(string path, string xmlElement, params string[] xmlAttribute)
{
XDocument xmlDoc = XDocument.Load(path);
var results = from c in xmlDoc.Descendants(xmlElement)
select c;
string s = "";
if (xmlAttribute.Length == 0)
{
foreach (var item in results)
{
s = item.Value.ToString();
}
}
else
{
foreach (var item in results)
{
s = item.Attribute(xmlAttribute[0]).Value.ToString();
}
}
return s;
}
/// <summary>
///设置xml指定节点的值
/// </summary>
/// <param name="path">xml地址</param>
/// <param name="xmlName">xml节点名称</param>
/// <param name="xmlValue">要设置的值</param>
/// <param name="xmlAttribute">节点的属性</param>
private static void setXmlValue(string path, string xmlName, string xmlValue, params string[] xmlAttribute)
{
XDocument xmlDoc = XDocument.Load(path);
if (xmlAttribute.Length == 0)
{
xmlDoc.Element("root").Element(xmlName).SetValue(xmlValue);
}
else
{
xmlDoc.Element("root").Element(xmlName).Attribute(xmlAttribute[0]).SetValue(xmlValue);
}
xmlDoc.Save(path);
}