我在XML文件中如何更改所有屬性名稱並保留C#中的XML值?
<CPU>
<NEW type="DOS" model="SV112">dos-8875</NEW>
<NEW type="DIN" model="SV544">din-9984</NEW>
<NEW type="FTP" model="SV774">ftp-9952</NEW>
<NEW type="DOS" model="SV112">dos-8854</NEW>
</CPU>
有這樣的,我想讓它這樣
<CPU>
<NEW name="DOS" model-no="SV112">dos-8875</NEW>
<NEW name="DIN" model-no="SV544">din-9984</NEW>
<NEW name="FTP" model-no="SV774">ftp-9952</NEW>
<NEW name="DOS" model-no="SV112">dos-8854</NEW>
</CPU>
這是我迄今所做的,可惜這只是改變的第一個屬性:
string path = @"d:\test.xml";
XDocument doc = XDocument.Load(path);
var element = doc.Root.Element("NEW");
var list = element.Attributes().ToList();
var oldAttr = list.Where(p => p.Name == "type").SingleOrDefault();
if (oldAttr != null)
{
XAttribute newAttr = new XAttribute("name", oldAttr.Value);
list.Add(newAttr);
list.Remove(oldAttr);
element.ReplaceAttributes(list);
}
Console.WriteLine(doc.ToString());
我想更改所有屬性名稱並保持其值,如何使用XDocument
?
僞代碼:
element[0].attribute[0].name = "type";
element[1].attribute[0].name = "type";
element[2].attribute[1].name = "model-no";
我猜你需要反序列化這個。看看這篇文章描述如何控制名稱等:https://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.110).aspx – Michael
您發送的價值鏈接,但我想要屬性名稱 – w3000cpu