如何更改c#中的XElement属性名称?
所以,如果
<text align="center"> d hhdohd </text>
更改后,属性名称对齐到text-align
<text text-align="center> d hhdohd </text>
答案 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 SetAttribute
和RemoveAttribute
答案 2 :(得分:0)
我认为你必须删除并重新添加,不能确定我的头脑中的语法。但是你应该能够xpath到节点。捕获现有属性的值,删除属性,创建新属性并为其指定旧值。
答案 3 :(得分:0)
使用linq-to-xml,您可以使用XElement.ReplaceAttributes
方法更新xml属性,如下所示:
XElement data = XElement.Parse (@"<text align=""center""> d hhdohd </text>");
data.ReplaceAttributes(
new XAttribute("text-align", "center")
);