在中更改xml属性名称

时间:2012-07-16 12:50:40

标签: c# xml

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

所以,如果

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

更改后,属性名称对齐到text-align

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

4 个答案:

答案 0 :(得分: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);
 }

答案 1 :(得分:1)

使用XmlElement SetAttributeRemoveAttribute

答案 2 :(得分:0)

我认为你必须删除并重新添加,不能确定我的头脑中的语法。但是你应该能够xpath到节点。捕获现有属性的值,删除属性,创建新属性并为其指定旧值。

答案 3 :(得分:0)

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

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

data.ReplaceAttributes(
    new XAttribute("text-align", "center")
);