2012-05-12 42 views
1

我有以下通用格式的XML文檔:操作XML文檔的屬性

<Alpha> 
    <Beta> 
     <Gamma> 
      <Delta id="1"> 
       ... 
      </Delta> 
      <Delta id="2"> 
       ... 
      </Delta> 
      ... 
     </Gamma> 
    </Beta> 
</Alpha> 

我正在尋找一種方式來找到所有的Delta元素(而不管有多少)並將id屬性的值增加一個特定值x,然後保存該文檔。什麼是最快的方法來實現這一目標?

回答

6

最短的代碼量?

XDocument doc = XDocument.Load("test.xml"); 
foreach (var id in doc.Descendants("Delta").Attributes("id")) 
{ 
    id.SetValue((int) id + 1); 
} 
doc.Save("test.xml"); 
0

你可以使用LINQ to Xml(也就是你用的是什麼.net版本??)。如果是這樣的話,這對Linq來說很簡單:

XDocument doc = XDocument.Load(source); 
foreach (var deltaNode in doc.Descendants().Where(e => e.Name.LocalName == "Delta")) 
    deltaNode.SetAttributeValue("id", "Whatever");