C#のXMLReaderで問題が発生しました。
私はこのコードを手に入れました:
private void countryXMLReader ()
{
XmlTextReader reader = new XmlTextReader("expenses.xml");
List<string> twentyFour = new List<string>();
while (reader.Read())
{
if (reader.Name.Equals("_24h"))
{
twentyFour.Add(reader.Value);
}
if (reader.Name == "_14h")
{
//MessageBox.Show(reader.Name);
}
}
}
これは私のXMLファイルです:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<expenses>
<country>
<name>Germany</name>
<ID>D</ID>
<_24h>42</_24h>
<_14h>28</_14h>
<_8h>14</_8h>
<overnight>100</overnight>
</country>
<country>
<name>India</name>
<ID>IND</ID>
<_24h>30</_24h>
<_14h>20</_14h>
<_8h>10</_8h>
<overnight>120</overnight>
</country>
</expenses>
ListItemsはリストに追加されますが、reader.Valueは常に空です。
どうすればこれを機能させることができますか?
どうもありがとう
トビ
編集:
今、私は次のコードを手に入れました:
private void countryXMLReader(){リストtwentyFour = new List();
XDocument doc = XDocument.Load(@"C:\Users\Bl!tz\Documents\Visual Studio 2010\Projects\MBG.SimpleWizard\Demo\bin\Debug\expenses.xml");
twentyFour.AddRange(doc
.Elements("expenses")
.Descendants("country")
.Descendants("_24h")
.Select(i => i.Value)
.ToList());
}
しかし、それは実際には値を持っていません。
私の問題は何でしょうか?
EDIT2:
これは私が使用するコードです:
private void countryXMLReader ()
{
List<string> twentyFour = new List<string>();
XDocument doc = XDocument.Load(@"expenses.xml");
twentyFour.AddRange(doc
.Elements("expenses")
.Descendants("country")
.Descendants("name")
.Descendants("ID")
.Descendants("_24h")
.Descendants("_14h")
.Descendants("_8h")
.Descendants("overnight")
.Select(i => i.Value)
.ToList());
}
ただし、List.Countは0のままです。このメソッドを次のように呼び出します。
public Page1()
{
InitializeComponent();
countryXMLReader();
}
ボタンでもテストしましたが、同じ結果になりました