LINQ to XMLでの属性の置換について.
過去の内容は以下から見れます。よろしければご参照くださいませ。
XElementには、属性の置換を行うためのメソッドがいくつか存在します。
XElement.ReplaceAttributes(object) XElement.ReplaceAttributes(object[])
以下、サンプルです。
#region LinqSamples-68 /// <summary> /// LINQ to XMLのサンプルです. /// </summary> /// <remarks> /// 属性置換系メソッドのサンプルです. /// </remarks> public class LinqSamples68 : IExecutable { public void Execute() { // // ReplaceAttributes // 現在の要素に付属している属性を一括で置換する。 // ノードの置換に利用するReplaceNodesメソッドと同じ要領で // 利用できる。(クエリを利用しながら、置換用のシーケンスを作成する) // var root = BuildSampleXml(); var elem = root.Elements("Child").First(); elem.ReplaceAttributes ( from attr in elem.Attributes() where attr.Name.ToString().EndsWith("d") select new XAttribute(string.Format("{0}-Update", attr.Name), attr.Value) ); Console.WriteLine(root); Console.WriteLine("====================================="); } XElement BuildSampleXml() { return XElement.Parse("<Root><Child Id=\"100\" Id2=\"200\"><Value Id=\"300\">hoge</Value></Child></Root>"); } } #endregion
実行すると以下のようになります。
===================================== hoge
以下、参考リソースです.
- XElement.ReplaceAttributes メソッド
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場