2009-05-17 30 views
3

特定の名前の「XML」ノードがxmlドキュメントのどこにでも、つまり階層内のどこにでも表示できる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

1

多分これはあなたのために働くかもしれませんか?

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

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

マルク・XPathを使用して

3

あなたがすべてのデータノードを見つけることができます: - DOMはあなたのXMLをロードするXmlDocumentある

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

また、あなたが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); 
関連する問題