[LINQ to Xml] 値を追加する

前回はLINQ to XMLを使用して、XMLファイルを作成する方法について紹介しました。

今回はXMLファイルの作成と同時に値を追加する方法について見ていきます。


 

今回作成するプログラムから作成されるXMLは以下の通りです。

作成されるXML

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

XMLElementクラスで値を設定する

前回は、XMLElementの第1引数のみを設定し、要素だけを作成しましたが、第2引数を設定すると、第1引数の要素に対する値を設定することができます。

VB

Public Sub New ( _
	name As XName, _  '要素名
	content As Object _  '要素の値
)

C#

public XElement(
	XName name,  // 要素名
	Object content  // 要素の値
)

このことを利用して、以下のようなコードを記述すると、最初に示したXMLファイルを作成することができます。

VBの例

Dim XDoc = New XDocument(New XDeclaration("1.0", "utf-8", True),
        New XElement("部署データ",
          New XElement("部署",
               New XElement("部署名", "企画部"),
               New XElement("部長名", "佐藤")
          ),
          New XElement("部署",
               New XElement("部署名", "開発部"),
               New XElement("部長名", "高橋")
          ),
          New XElement("部署",
               New XElement("部署名", "営業部"),
               New XElement("部長名", "伊藤")
               )
          )
    )

XDoc.Save("C:\Work\MyCompany.xml")

C#の例

var XDoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"),
    new XElement("部署データ",
      new XElement("部署",
           new XElement("部署名", "企画部"),
           new XElement("部長名", "佐藤")
      ),
      new XElement("部署",
           new XElement("部署名", "開発部"),
           new XElement("部長名", "高橋")
      ),
      new XElement("部署",
           new XElement("部署名", "営業部"),
           new XElement("部長名", "伊藤")
           )
      )
);

XDoc.Save(@"C:\Work\MyCompany.xml");

 

コメントを残す

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

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