異端な開発者を許ぃたってチョ☆

異端な開発者=尾画茶の記事

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  26  : 記事  0  : コメント  194  : トラックバック  3

ニュース

ブログは初めて & よーわからん & 苦手です…… ルールがわかっていないので、ご無礼してしまったときはお許しください。

書庫

日記カテゴリ

コミュニティー

ブックマーク

初心者向け

2008年7月17日 #

.NET Framework 3.5 になってから、色々な便利機能や名前空間が増えた。その中でも、お気に入りは、System.Xml.Linq 名前空間だ。XMLを扱うのに、非常に簡素で素敵な機能を提供してくれている。

まず、Document を考えなくても、Element 単位で考えられるところがよい。XElement は、たとえば、以下のように生成できる。

            var x = new XElement("要素", new XAttribute("属性", "値"),
                        new XElement("子要素",
                            new XElement("孫要素")
                        )
                    );

ここでの x の中身は次のようになる。

<要素 属性="値">
  <子要素>
    <孫要素 />
  </子要素>
</要素>

つまり、階層構造を真似て記述でき、引数を複数指定できるので、ありのままの XML を記述できる。また、Namespace を制御する XNamespace もシンプルで冴えている。string と同じような扱いをするように設計されており、コンストラクタがない。使い方は、

XNamespace n = "http://schema.wankuma.com/";

と、こんな感じ。XElement などに指定する時も、string にならって、

var x2 = new XElement( n + "要素名" );

と、こんな書き方である。しかし、n は string ではなく、あくまでも XNamespace。x2.Name は、string 型ではなく、名前空間とノード名が一つになった XName 型である。要素名を取り出すときは、x2.Name.LocalName となる。

System.Xml 名前空間は W3C に準拠して設計されたと思われるが、System.Xml.Linq 名前空間は、最適化された全く別の設計思想(つまりはLINQ)に基づいていると思う。

posted @ 0:22 | Feedback (66)