ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

VB.NETでXMLリテラルを使ったXMLの定義方法

f:id:shinsuke789:20141128121500j:plain

XMLリテラル

VB.NETでは、XML文字列をXMLオブジェクトとして簡単に定義できます。

Dim element As XElement =
  <root>
    <users>
      <user id="" />
    </users>
  </root>

変数を使う

変数を使って値を設定したい場合、<%= 変数名 %>を使用します。

Dim id As Integer = 1
Dim element As XElement =
  <root>
    <users>
      <user id=<%= id %> />
    </users>
  </root>

要素を変数で定義する

要素名を変数で定義し、</>を設定します。

Dim elementName As String = "users"
Dim id As Integer = 1
Dim element As XElement =
  <root>
    <<%= elementName %>>
      <user id=<%= id %> />
    </>
  </root>

属性を変数で定義する

属性名と属性値を別々の変数で定義し、「=」を挟んでXMLを定義します。

Dim attr As String = "id"
Dim id As Integer = 1
Dim element As XElement =
  <root>
    <users>
      <user <%= attr %>=<%= id %> />
    </users>
  </root>

配列やリストを展開する

配列やリストを展開してXMLを追加したい場合、LINQFrom / Selectを使用します。

Dim list As New List(Of Integer)(New Integer() {1,2,3})
Dim element As XElement =
  <root>
    <users>
      <%= From id In list
          Select <user id=<%= id %>/>
      %>
    </users>
  </root>

条件によって要素を追加する

条件によって要素を追加したい場合、ワンライナーIfを使用し、条件に一致しない場合、Nothingを設定すると追加されません。

Ifは、VS2008から使用できます。それ以前の場合、IIF関数を使用します。

Dim id As Integer = 1
Dim flg As Boolean = True
Dim element As XElement =
  <root>
    <users>
      <%= If(flg,
          <user id=<%= id %>, Nothing) %>
    </users>
  </root>

逆引き大全

Windows8/7完全対応 Visual Basic 2013逆引き大全―Visual Studio Professional 2013/Express 2013対応

Windows8/7完全対応 Visual Basic 2013逆引き大全―Visual Studio Professional 2013/Express 2013対応