4

如何更改 C# 中的 XElement 属性名称?

因此,如果

<text align="center"> d hhdohd  </text>

将属性名称 align 更改为 text-align 后

<text text-align="center> d hhdohd  </text>
4

4 回答 4

6

使用LINQ-XML,您可以删除一个existing属性,然后添加一个新属性。

Xml 标记:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <text align="center" other="attribute">Something</text>
</root>

代码:

 XDocument doc = XDocument.Load(file);
 var element = doc.Root.Element("text");
 var attList = element.Attributes().ToList();
 var oldAtt = attList.Where(p => p.Name == "align").SingleOrDefault();
 if (oldAtt != null)
  {
   XAttribute newAtt = new XAttribute("text-align", oldAtt.Value);
   attList.Add(newAtt);
   attList.Remove(oldAtt);
   element.ReplaceAttributes(attList);
   doc.Save(file);
 }
于 2012-07-16T13:56:58.313 回答
1

使用XmlElement SetAttributeRemoveAttribute

于 2014-05-06T09:26:50.243 回答
0

使用,您可以使用XElement.ReplaceAttributes方法来更新 xml 属性,如下所示:

XElement data = XElement.Parse (@"<text align=""center""> d hhdohd  </text>");

data.ReplaceAttributes(
    new XAttribute("text-align", "center")
);
于 2012-07-16T13:08:42.937 回答
0

I think you would have to remove and re-add, not sure the syntax off the top of my head. but you should be able to xpath to the node. Capture the value of the existing attribute, remove the attribute, create a new attribute and assign it the old value.

于 2012-07-16T12:57:19.027 回答