XMLリテラル

XMLリテラルは、コード上に直接書けるXMLです。

NETプログラマーにとって、XSLTは終焉なのか? (InfoQ)

InfoQの記事によると、XMLリテラルは、Haskellで開拓され、C#向けに開発され、結果的にVB.NETで実装されたそうです。

The Visual Basic Teamのブログ(VB XML Cookbook)

XMLリテラルを有効に使うと、XMLの変換が容易にできます。VBチームのブログを参考にXMLリテラルのコードを書いてみました。

  • Contacts.xml(インプットファイル)
<?xml version="1.0" encoding="utf-8" ?>
<Contacts>
    <Contact>
        <Name>ほげ助</Name>
        <EmailAddress>hoge@abc.com</EmailAddress>
    </Contact>
    <Contact>
        <Name>もげ太</Name>
        <EmailAddress>moge@xyz.net</EmailAddress>
    </Contact>
</Contacts>
'XMLの読み込み
Dim xmlDoc = XDocument.Load("Contacts.xml")

'ここがXMLリテラル
Dim emailDoc = <?xml version="1.0"?>
               <Addresses>
                   <%= xmlDoc.<Contacts>.<Contact>.<EmailAddress> %>
               </Addresses>

'XMLを出力
emailDoc.Save("EmailAddresses.xml")
  • EmailAddresses.xml(アウトプットファイル:encodingは自動的に付加)
<?xml version="1.0" encoding="utf-8"?>
<Addresses>
  <EmailAddress>hoge@abc.com</EmailAddress>
  <EmailAddress>moge@xyz.net</EmailAddress>
</Addresses>

コードが短くインテリセンスも効くので、結構、便利だと思います。VBチームのブログでは、XSLTLINQを使ったコードとの比較もしています。