2009-05-17 106 views
3

我有一个xml文档,其中带有特定名称的XML节点,比如'Data'可以出现在xml文档中的任何位置,即层次结构中的任何位置。我需要单独阅读这些节点及其节点名称并编辑节点属性。最简单的方法是什么?编辑Xml节点

回答

4
XmlDocument doc = new XmlDocument(); 
doc.Load(@"Test.xml"); 
XmlNodeList elem = doc.GetElementsByTagName("Data"); 
foreach (XmlNode tag in elem) 
{ 
//do whatever you want to the attribute using SetAttribute method 
} 

XmlElement.GetElementsByTagName Method会做的伎俩

+0

的XmlNode没有的setAttribute方法。您需要改用XmlElement。 – Grank 2009-07-30 19:17:26

1

也许这样的事情可能适合你吗?

XmlNodeList dataNodes = xmlDocument.SelectNodes('//Data') 

foreach(XmlNode node in dataNodes) 
{ 
    .. // do whatever you need to do 
} 

马克

3

使用XPath你可以找到所有的数据节点有: -

foreach(XmlElement elem in dom.SelectNodes("//Data")) 
{ 
    //do stuff to each elem. 
} 

其中DOM是装载你的XML一个XmlDocument。

或者如果你喜欢的XDocument: -

foreach(XElement elem in doc.Descendents("Data")) 
{ 
    //do stuff to each elem. 
} 
1

事情是这样的:

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(fileName); 

XmlNodeList nodes = xmlDoc.SelectNodes("//Data"); 
for (int i = 0; i < nodes.Count; i++) 
{ 
    nodes[i].Attributes["somevalue"].Value = "edited"; 
} 

xmlDoc.Save(fileName);