2011-07-26 51 views
0

我使用C#與.net 3.5並且有一些情況下,我想用其他方法替換XmlDocument的XML屬性中的某些子字符串。替換XmlDocument屬性中的子字符串

一種情況是與'替換單引號字符,另一個是清理包含有效的XML一些文件,但該屬性的值已不再適用(比如更換任何屬性與‘MYMACHINE’與「開頭newMachine「)。

有沒有簡單的方法來做到這一點,或者我需要通過每個節點的每個屬性(遞歸)?

+0

通過「嚴重創建」,你的意思是文檔不是格式良好的XML? – Amy

+0

不,我的意思是某些屬性被設置爲錯誤的值(例如,許多屬性指向不再存在的計算機上的共享文件夾) – Warpin

回答

2

解決此問題的一種方法是使用Linq to XML選擇正確元素的列表,然後遍歷該列表。這裏有一個例子一行代碼:

XDocument doc = XDocument.Load(path); 
doc.XPathSelectElements("//element[@attribute-name = 'myMachine']").ToList().ForEach(x => x.SetAttributeValue("attribute-name", "newMachine")); 

你也可以做一個更傳統的迭代。

0

我建議看看LINQ to XML。有一些代碼片段可以幫助你在這裏開始 - LINQ To XML Tutorials with Examples

LINQ to XML應該允許你做你想做的事情,一旦你玩過它,你可能會發現它很容易一點點。