2011-11-19 63 views
1

我最近在開發.net 2.0項目,我必須閱讀一些xml文件並替換某些元素值。 想知道你如何做到這一點以下不使用LINQ到XML?將以下Linq轉換爲xml爲.net 2.0

IEnumerable<XElement> cities= xmldoc.Descendants("City") 
      .Where(x => x.Value == "London"); 


     foreach (XElement myElem in cities) 
     { 
      myElem.ReplaceWith(new XElement("City", "NewCity")); 
     } 

 var xElement = xdoc.Descendants("FirstName").Where(x => x.Value == "Max").First(); 
     xElement.ReplaceWith(new XElement("FirstName", "NewValue"); 

任何建議

+0

閱讀此SO後 - LINQ上的.NET 2.0運行時間http://stackoverflow.com/questions/2138/linq-on-the-net-2-0-runtime – adatapost

+0

看看這裏http:// www.developer.com/net/csharp/article.php/3489611 –

回答

1

您可以考慮使用XmlDocument的,就像這樣:

string xmlFile = "<xml><data<test /><test /><test /><test /></data></xml>"; 
var xmlDoc = new XmlDocument(); 
xmlDoc.Load(xmlFile); 

var oNodes = xmlDoc.SelectNodes("//test"); 
foreach (var oNode in oNodes) 
{ 
    oNode.InnerText = "bla bla"; 
} 

xmlDoc.Save("..path to xml file"); 

(在你的情況,你可以使用文檔的InnerXml屬性)

http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx

要的selectNodes你應該通過XPath查詢,可以參考:

http://www.w3schools.com/xpath/

此外,如果你的XML命名空間包含,你需要使用的XmlNamespaceManager:

http://msdn.microsoft.com/en-us/library/system.xml.xmlnamespacemanager.aspx

否則的XPath將不起作用。