XElementを使ったXMLの読み込み方法を記載します。
【検証環境】VisualStudio2019 / .NET Core3.1
XMLを読み込む
ファイルパスは「D:PG-LIFEPerson.xml」とします。
要素の値を取得する
下記のXMLファイルのように、値が要素内の場合は、Elementメソッドを使用します。
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Person>
<Name>永野芽衣</Name>
<Age>21</Age>
<BloodType>AB</BloodType>
</Person>
<Person>
<Name>本田翼</Name>
<Age>28</Age>
<BloodType>O</BloodType>
</Person>
<Person>
<Name>戸田恵梨香</Name>
<Age>32</Age>
<BloodType>AB</BloodType>
</Person>
</Root>
上記のXMLから、名前・年齢・血液型を取得して画面に表示する場合は、下記のように書きます。
構文
Element(“要素名”).Value
//xmlファイルを読み込む
XElement xml = XElement.Load(@"D:PG-LIFEPerson.xml");
//Personタグ内の要素を取得する
IEnumerable<XElement> people = xml.Elements("Person");
foreach (var person in people)
{
var name = person.Element("Name").Value;
var age = person.Element("Age").Value;
var bloodType = person.Element("BloodType").Value;
Console.WriteLine($"{name} {age}歳 {bloodType}型");
//永野芽衣 21歳 AB型
//本田翼 28歳 O型
//戸田恵梨香 32歳 AB型
}
属性の値を取得する
下記のように属性内に値が格納されている場合は、Attributeメソッドを使用します。
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Person>
<Name value="永野芽衣" />
<Age value="21" />
<BloodType value="AB" />
</Person>
<Person>
<Name value="本田翼" />
<Age value="28" />
<BloodType value="O" />
</Person>
<Person>
<Name value="戸田恵梨香"/>
<Age value="32"/>
<BloodType value="AB"/>
</Person>
</Root>
構文
Element(“要素名”).Attribute(“属性名”).Value
//xmlファイルを読み込む
XElement xml = XElement.Load(@"D:PG-LIFEPerson.xml");
//Personタグ内の要素を取得する
IEnumerable<XElement> people = xml.Elements("Person");
foreach (var person in people)
{
//ここでpersonは単一のPersonタグとなる
//Personタグ内の要素から、値を取得・表示する
var name = person.Element("Name").Attribute("value").Value;
var age = person.Element("Age").Attribute("value").Value;
var bloodType = person.Element("BloodType").Attribute("value").Value;
Console.WriteLine($"{name} {age}歳 {bloodType}型");
}