&tag(XElement); *目次 [#de8b1fcc] #contents *参考情報 [#r39c2ea4] *要素の選択 [#mb275eeb] **Element [#e0de872d] -直接の子要素を選択する。 #pre{{ XElement childElement = element.Element("Child"); }} **Elements [#z5163a83] -直接の子要素を全て選択する。 #pre{{ IEnumerable<XElement> children = element.Element("Child"); }} **Descendants [#d05d45cc] -子孫の要素を選択する。 #pre{{ IEnumerable<XElement> children = parentElement.Descendants("Child"); }} *値の取得 [#fe99e62b] **XElementのValueプロパティ [#u28bca98] -XElementを取得後、Valueプロパティを使って値を取得する。 #pre{{ XElement nameElement = element.Element("Name"); string name = nameElement.Value; }} **直接データ型にキャスト [#o9c18450] -直接null変換可能なデータ型に変換して取得する(DateTime→DateTime?となる) #pre{{ string name = (string)element.Element("Name"); }} **DataTime型変換時のタイムゾーンはどうなるか [#i9c20b1e] -例えば「<Date>2011-01-10+09:00</Date>」というXML要素をDateTime型に読み込むと、DateTimeオブジェクトの日付は「2011-01-10 00:00:00 ローカルタイム」となる。 -「<Date>2011-01-10+01:00</Date>」を読み込ませると、「2011-01-10 01:00:00 ローカルタイム」となる。 -つまりどんなタイムゾーンが指定されていようがローカルタイムのDateTimeが帰ってくる。 #pre{{ DateTime? date = (DateTime?)element.Element('Date'); }}