基本的には、xmlを競馬クラスに読み込みたいだけです。私はこのコードを持っていますが、(List)rows [1]は常に0を返します
public List<HorseRacing> ReturnListOfHorseRacings()
{
string xmlData = HttpContext.Current.Server.MapPath("~/XML/top.xml");
DataSet ds = new DataSet();
ds.ReadXml(xmlData);
var horseRacing = new List<HorseRacing>();
horseRacing = (from rows in ds.Tables[0].AsEnumerable()
select new HorseRacing
{
name= rows[0].ToString(),
meetings= (List<Meeting>)rows[1],
}).ToList();
return horseRacing;
}
助けてください。データセットセルがリストを受け入れられないようです。
ちなみに、Meetingも別のマルチエレメントノードです。
編集:
xmlは次のようになります。
<horseracing>
<name>UK / IRE</name>
<meetings>
<meeting>
<name>Doncaster</name>
<marketgroups>
<marketgroup>
<name>5f Cond Stakes</name>
<idfwmarketgroup>468262.1</idfwmarketgroup>
<tsstart>2013-03-22T13:25:00</tsstart>
</marketgroup>
<marketgroup>
<name>1m 2 1/2f Handicap</name>
<idfwmarketgroup>468263.1</idfwmarketgroup>
<tsstart>2013-03-22T14:00:00</tsstart>
</marketgroup>
</marketgroups>
</meeting>
<meeting>
<name>Newbury</name>
<marketgroups>
<marketgroup>
<name>2m 5f 0y Emma Lavelle Racing Maiden Hurdle</name>
<idfwmarketgroup>468270.1</idfwmarketgroup>
<tsstart>2013-03-22T14:10:00</tsstart>
</marketgroup>
<marketgroup>
<name>2m 6f 110y Mark Polding Half Century Handicap Chase</name>
<idfwmarketgroup>468271.1</idfwmarketgroup>
<tsstart>2013-03-22T14:40:00</tsstart>
</marketgroup>
</marketgroups>
</meeting>
</meetings>
</horseracing>
ごめんなさい。パートIIの編集:xmlを競馬クラスに読み込みたい。
XDocumentを使用してXMLファイルを読み取ることができます。XDocumentにはXMLフィードが必要であり、XMLフィードには文字列フィードが必要です。コードでは、次のようになります。
XDocument coordinates = XDocument.Load (XmlReader.Create (new StringReader (File.ReadAllText (pathOfFile))));
次に、foreach-loopを使用してXDocumentをループできます。
foreach (var coordinate in coordinates.Descendants("document"))
{
string data = coordinate.Element ("object").Value;
}
「子孫」は、指定されたタグの子のみを検索するために使用されます。「要素」は、指定されたタグからすべてのデータを取得するために使用されます。XMLが次のようになる場合:
<document>
<object>
<id>17</id>
<userID>128321</userID>
<approved>1</approved>
<reason>Test "Declined"</reason>
</object>
<object>
<id>18</id>
<userID>128321</userID>
<approved>2</approved>
<reason>Test "Confirmed"</reason>
</object>
<document>
上記の方法を使用すると、ID、ユーザーID、承認済み、および理由の値を使用してリストまたは配列を開始できます。
これがお役に立てば幸いです。がんばろう!
よろしくお願いいたします。ビョルン
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加