[LINQ to Xml] 要素を追加する

任意の要素を追加するには XElementクラスの Addメソッドを使用します。

以下のXMLファイルを準備して(前回までの記事を参照)、値を追加する方法について見ていきます。

Company.xml

<?xml version="1.0" encoding="utf-8"?>
<部署データ>
  <部署 id="0001">
    <部署名>企画部</部署名>
    <部長名>佐藤</部長名>
  </部署>
  <部署 id="0002">
    <部署名>開発部</部署名>
    <部長名>高橋</部長名>
  </部署>
  <部署 id="0003">
    <部署名>営業部</部署名>
    <部長名>伊藤</部長名>
  </部署>
</部署データ>

ルート要素の <部署データ>には idが0001~0003の3つの部署データがあります。

ここに4つめの要素として、以下を追記する例で説明します。

<部署 id="0004">
  <部署名>購買部</部署名>
  <部長名>松田</部長名>
</部署>

まずは、XMLファイルを読み込みます。

その後、ルート要素を取得し(xDoc.Elements().First())、Addメソッドで要素を追加します。

VBの例

Dim xDoc = XDocument.Load("C:\Work\MyCompany.xml")

Dim elem = New XElement("部署",
               New XAttribute("id", "0004"),
               New XElement("部署名", "購買部"),
               New XElement("部長名", "松田")
               )

xDoc.Elements().First().Add(elem)

Console.WriteLine(xDoc.ToString())

C#の例

var xDoc = XDocument.Load(@"C:\Work\MyCompany.xml");

var elem = new XElement("部署",
               new XAttribute("id", "0004"),
               new XElement("部署名", "購買部"),
               new XElement("部長名", "松田")
               );

xDoc.Elements().First().Add(elem);

Console.WriteLine(xDoc.ToString());

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.