LINQtoXML
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(XML, LINQtoXML);
*目次 [#ybc772be]
#contents
*参考情報 [#vb58063a]
-[[困ったときにそのまま使える LINQ to XML コードサンプル ...
-[[困ったときにそのまま使える LINQ to XML コードサンプル ...
-[[LINQ to XML 備忘録2 X* クラスの使用方法について - Comp...
-[[XElement]]
*設定 [#h7d7acaa]
-参照の追加で、System.XML, System.Xml.Linqを追加する。
*読み込み [#e9a01a49]
**サンプルXML [#ad6214ad]
-次の内容のファイルをpersons.xmlとして保存する。
#pre{{
<?xml version="1.0" encoding="utf-8" ?>
<PersonList>
<Persons id="soccer">
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
</Persons>
<Persons id="baseball">
<Person>
<Name>ダルビッシュ</Name>
<Age>25</Age>
</Person>
<Person>
<Name>イチロー</Name>
<Age>36</Age>
</Person>
</Persons>
</PersonList>
}}
**ファイルから読み込む [#y4e70a9c]
-XDocument.Load(XMLファイル名)を使用する
var xdoc = XDocument.Load("../../persons.xml");
*要素の選択 [#ibca1b47]
**子孫の要素を選択する [#j9bff8df]
-Descendants(要素名)を使用すると階層深くにある要素も一気...
#pre{{
var persons = xdoc.Descendants("Person");
foreach (var person in persons)
{
Debug.WriteLine("##### start #####");
Debug.WriteLine(person.ToString());
Debug.WriteLine("");
}
}}
-出力結果
#pre{{
##### start #####
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
##### start #####
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
##### start #####
<Person>
<Name>ダルビッシュ</Name>
<Age>25</Age>
</Person>
##### start #####
<Person>
<Name>イチロー</Name>
<Age>36</Age>
</Person>
}}
**属性で選択する [#a9f2c176]
-Attribute("属性")を使って要素を選択することができる。サ...
#pre{{
var personsCollection = (
from p in xdoc.Descendants("Persons")
where p.Attribute("id").Value == "soccer"
select p);
foreach (var persons in personsCollection)
{
Debug.WriteLine(persons.ToString());
}
}}
-出力結果
#pre{{
##### start #####
<Persons id="soccer">
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
</Persons>
}}
終了行:
&tag(XML, LINQtoXML);
*目次 [#ybc772be]
#contents
*参考情報 [#vb58063a]
-[[困ったときにそのまま使える LINQ to XML コードサンプル ...
-[[困ったときにそのまま使える LINQ to XML コードサンプル ...
-[[LINQ to XML 備忘録2 X* クラスの使用方法について - Comp...
-[[XElement]]
*設定 [#h7d7acaa]
-参照の追加で、System.XML, System.Xml.Linqを追加する。
*読み込み [#e9a01a49]
**サンプルXML [#ad6214ad]
-次の内容のファイルをpersons.xmlとして保存する。
#pre{{
<?xml version="1.0" encoding="utf-8" ?>
<PersonList>
<Persons id="soccer">
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
</Persons>
<Persons id="baseball">
<Person>
<Name>ダルビッシュ</Name>
<Age>25</Age>
</Person>
<Person>
<Name>イチロー</Name>
<Age>36</Age>
</Person>
</Persons>
</PersonList>
}}
**ファイルから読み込む [#y4e70a9c]
-XDocument.Load(XMLファイル名)を使用する
var xdoc = XDocument.Load("../../persons.xml");
*要素の選択 [#ibca1b47]
**子孫の要素を選択する [#j9bff8df]
-Descendants(要素名)を使用すると階層深くにある要素も一気...
#pre{{
var persons = xdoc.Descendants("Person");
foreach (var person in persons)
{
Debug.WriteLine("##### start #####");
Debug.WriteLine(person.ToString());
Debug.WriteLine("");
}
}}
-出力結果
#pre{{
##### start #####
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
##### start #####
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
##### start #####
<Person>
<Name>ダルビッシュ</Name>
<Age>25</Age>
</Person>
##### start #####
<Person>
<Name>イチロー</Name>
<Age>36</Age>
</Person>
}}
**属性で選択する [#a9f2c176]
-Attribute("属性")を使って要素を選択することができる。サ...
#pre{{
var personsCollection = (
from p in xdoc.Descendants("Persons")
where p.Attribute("id").Value == "soccer"
select p);
foreach (var persons in personsCollection)
{
Debug.WriteLine(persons.ToString());
}
}}
-出力結果
#pre{{
##### start #####
<Persons id="soccer">
<Person>
<Name>中田英寿</Name>
<Age>34</Age>
</Person>
<Person>
<Name>中村俊輔</Name>
<Age>33</Age>
</Person>
</Persons>
}}
ページ名: