2009-05-17 3 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

아마도이 기능이 도움이 될 수 있습니까? 당신은 모든 데이터 노드를 찾을 수 있습니다 XPath를 사용

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

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

마크

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);