我在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