4

C#でXElement属性名を変更するにはどうすればよいですか?

だからもし

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

属性名を変更した後、テキスト整列に整列します

<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 SetAttributeし、RemoveAttribute

于 2014-05-06T09:26:50.243 に答える
0

構文が頭から離れているかどうかわからないので、削除して再度追加する必要があると思います。ただし、ノードにxpathできるはずです。既存の属性の値をキャプチャし、属性を削除し、新しい属性を作成して、古い値を割り当てます。

于 2012-07-16T12:57:19.027 に答える
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 に答える