不要小看這個操作,其實是不太容易的。請注意,我們是要替換掉元素的名稱,而不是元素的值。
XML的內容在記憶體中是一個DOM樹,要替換掉一個元素,其實是要新建一個元素,並且將原先元素的所有子元素都複製過來。在LINQ TO XML中用ReplaceWith來實作
using System; using System.Linq; using System.Xml.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { XDocument doc = new XDocument( new XElement("Tables" , new XElement("Table" , new XElement("Name", "Orders") , new XElement("Owner", "chenxizhang")) , new XElement("Table" , new XElement("Name", "Customers") , new XElement("Owner", "Allen")) )); Console.WriteLine("原始的XML内容:"); Console.WriteLine(doc); //改变Tables元素名称为Items Console.WriteLine("改变了根元素之后显示的效果:"); XElement root = doc.Element("Tables"); root.ReplaceWith(new XElement("Items", root.Elements("Table"))); Console.WriteLine(doc); //改变Table元素名称为Item Console.WriteLine("改变了子元素之后显示的效果:"); foreach (var item in doc.Elements("Items").Descendants().ToList())//这里一定要先ToList { item.ReplaceWith(new XElement("Item", item.Descendants())); } Console.WriteLine(doc); Console.Read(); } } }
以上是詳解在XML文件中替換元素名稱的方法(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!