2013-07-29 3 views
1

으로 변경하는 방법 내 소스 코드를 사용하여 "id"속성을 어떻게 변경할 수 있습니까?XML 파일의 속성 값을 C#

static void Main(string[] args) 
    { 

     XmlTextReader reader = new XmlTextReader(@"C:\Users\1.xml"); 
     XmlNodeList elementList = reader. 
     while (reader.Read()) 
     { 
      switch (reader.NodeType) 
      { 
       case XmlNodeType.Element: // The node is an element 
        { 
         reader.ReadToFollowing("command"); 
         reader.MoveToAttribute("id");       
         Console.Write(reader.Value); 
         Console.WriteLine(" ");      
        } 
        break; 
      } 
     }   
     Console.Read(); 
    } 

몇 가지 예를 보았지만 광산에서는 작동하지 않는 다른 방법을 사용했습니다.

+0

방금 ​​XmlReader를 사용하고 있습니다. 읽기 전용이며 변경하지 않습니다. XML에 대한 LINQ를 사용하는 것이 더 나을 것입니다. 그러나 지금 당장 무엇을 하려는지 말할 수는 없습니다. –

+0

나는 xml 파일을 가지고 있는데, 다른 위치에서 값을 변경해야한다. 쉬운 예 : <명령 장치 = "조직"id = "20"> ... 그래서 id = "0"id처럼 번호를 변경해야합니다. = "1"등등 –

답변

1

내가 XML

XElement doc=XDocument.Load(path); 
foreach(var element in doc.Descendants().Elements("command")) 
{ 
element.Attribute("id").Value=yourValue; 
} 
doc.Save(path); 

에 LINQ를 사용합니다 (I가 noobie 해요)이 각 명령 요소의 id 속성을 바꿀 것

+0

왜 Descendants() 대신 Descendants ("command")'를 사용하지 않는가? 요소 ("command")'? –

+0

(오래간만에) 어떤 라이브러리를 사용해야합니까? 충분하지 않습니다 using.linq; XElement가 인식되지 않습니다. –

+0

사용 System.Xml.Linq; 문제가되었습니다 : 변환 할 수 없습니다 ... XDocument to XElelent. –

0

코드 위의 저

이 작품에 대한 비행하지 않았다 생각한 것

var doc = XDocument.Load(path); 
    foreach(var element in doc.Descendants("command")) 
    { 
     element.Attribute("id").Value = id; 
    } 

doc.Save(path); 

희망을 갖고 있으면 시간을 절약 할 수 있습니다.

관련 문제