2012-07-16 223 views
4

如何更改c#中的XElement屬性名稱?更改xml屬性名稱

所以,如果

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

變更後的屬性名稱對齊文本對齊

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

你的意思是像'[XmlAttribute(名稱=)]'? – Silvermind 2012-07-16 12:55:42

回答

5

使用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); 
} 
0

我認爲你將不得不刪除並重新添加,不知道語法關閉頂部我的頭。但你應該能夠xpath到節點。捕獲現有屬性的值,刪除屬性,創建新屬性併爲其指定舊值。

0

使用,您可以使用XElement.ReplaceAttributes方法來更新XML屬性,像這樣:

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

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

使用XmlElement SetAttributeRemoveAttribute