Что вы можете сделать, это сначала выбрать все атрибуты XML, а затем использовать LINQ, чтобы выбрать все атрибуты, содержащие «Имя».
XmlDocument document = new XmlDocument();
...
XmlNodeList list = document.SelectNodes("@*");
IEnumerable<XmlNode> filteredList= list.Cast<XmlNode>().Where(item=>item.Value.ToLower().Contains("name"));
Надеюсь, это направит вас в правильном направлении.
Edit:
Реда, ты был абсолютно прав, я допустил несколько ошибок. Этот код работал на моей машине ;-) Я добавил комментарии, где я изменил ваш код.
public void updateXmlFile(string strFileName)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(strFileName);
string newValue = GetUniqueKey();
XmlNodeList list = doc.SelectNodes("//@*"); // Forgot the slashes here...
IEnumerable<XmlNode> filteredList = list.Cast<XmlNode>().
Where(item => item.Name.ToLower().Contains("name")); // Name property instead of Value
foreach (XmlNode n in filteredList)
{
n.Value = newValue; // Setting the value.
Console.WriteLine("FILTERED NODES ARE : {0}", n.Value);
}
doc.Save(strFileName);
}
catch (XmlException xex) { Console.WriteLine(xex); }
}