XMLReader を使用して巨大な XML ファイル (250 MB) を読み取り、特定の要素のみを一般的な List に追加しています。リストに値を正しく追加できません。リストに null 値を取得しています。ご協力をお願いします 以下は、私が使用しているクラスです。
public class SomeInfo
{
public string Item1 { get; set; }
public string Item2 { get; set; }
}
XML を読み取るための私のコードは次のとおりです。
using (XmlReader reader = XmlReader.Create(file)
)
{
List<SomeInfo> test = new List<SomeInfo>();
while (reader.Read())
{
var testObject = new SomeInfo();
if (reader.NodeType == XmlNodeType.Element)
{
string name = reader.Name;
switch (name)
{
case "Item1":
reader.Read();
testObject.item1= reader.Value;
break;
case "Item2":
reader.Read();
testObject.item2= reader.Value;
break;
}
test.Add(testObject);
}
}
サンプル XML : これは巨大な xml ファイルであり、いくつかの要素を読み取ってリストに追加するだけで済みます。上記のコードでは、Item1 と Item2 のみを読み取り、Xitem、Bitem、Citem タグは気にしません。
<mainItem>
<Item>
<Xitem>125</Xitem>
<Item1>ab41gh80020gh140f6</Item1>
<BItem>42ae3de3</BItem>
<Item2>7549tt80384</Item2>
<Citem>c7dggf66e4</Citem>
</Item>
<Item>
<Xitem>865</Xitem>
<Item1>ab41gh80020gh140f6</Item1>
<BItem>42aejj3de3</BItem>
<Item2>7549kljj80384</Item2>
<Citem>c7df6kk6e4</Citem>
</Item>
<Item>
<Xitem>895</Xitem>
<Item1>ab41gjgjgh80020gh140f6</Item1>
<BItem>42aehkh3de3</BItem>
<Item2>754980384</Item2>
<Citem>c7dfjj66e4</Citem>
</Item>
</mainItem>