如何更改c#中的XElement屬性名稱?更改xml屬性名稱
所以,如果
<text align="center"> d hhdohd </text>
變更後的屬性名稱對齊文本對齊
<text text-align="center> d hhdohd </text>
如何更改c#中的XElement屬性名稱?更改xml屬性名稱
所以,如果
<text align="center"> d hhdohd </text>
變更後的屬性名稱對齊文本對齊
<text text-align="center> d hhdohd </text>
使用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);
}
我認爲你將不得不刪除並重新添加,不知道語法關閉頂部我的頭。但你應該能夠xpath到節點。捕獲現有屬性的值,刪除屬性,創建新屬性併爲其指定舊值。
使用linq-to-xml,您可以使用XElement.ReplaceAttributes
方法來更新XML屬性,像這樣:
XElement data = XElement.Parse (@"<text align=""center""> d hhdohd </text>");
data.ReplaceAttributes(
new XAttribute("text-align", "center")
);
使用XmlElement SetAttribute
和RemoveAttribute
你的意思是像'[XmlAttribute(名稱=)]'? – Silvermind 2012-07-16 12:55:42