私はプログラミングには新しく、深刻な問題があり、それを脱することはできません。XMLタグxith XMLReaderの値を取得してLinkedListに追加するC#
私は5つのXML URLを持っています。 http://www.shopandmiles.com/xml/3_119_3.xml
これは、値を取得して関連する列にデータベースに書き込む必要があるXML URLです。 カラム名とXMLタグ名が一致しています。
私は以下のコードを書くと、リーダー要素はnull xml値を見逃しています。一部のタグには値がありません。私はそれらのnullをlinkedlistに追加する必要があります。なぜなら、そのコードの後、リンクされたリストを調べていますが、ıcantがnull xml値の値を追加すると、順序は一致しません。したがって、カラム名と内部のデータは一致しません。私は注文を失う。私のすべてのコードはここにあります、それが役立つ場合は、コード内のコメントをチェックすることもできます。皆さん、ありがとうございました。
public void WebServiceShopMilesCampaignsXMLRead(string URL)
{
XmlReader reader = XmlReader.Create(URL);
LinkedList<string> linkedList = new LinkedList<string>();
List<ShopAndMilesCampaigns> shopMileCampaigns = new List<ShopAndMilesCampaigns>();
try
{
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Text:
linkedList.AddLast(reader.Value);
break;
}
}
}
catch (XmlException exception)
{
Console.WriteLine("XML okurken bir sorun oluştu, hata detayı --> " + exception.Message);
}
LinkedListNode<string> node = linkedList.First;
while (node != null)
{
ShopAndMilesCampaigns shopMilesCampaign = new ShopAndMilesCampaigns();
shopMilesCampaign.Name = node.Value; // Null values mixes up the order because i cant add as null with reader.read above
node = node.Next;
shopMilesCampaign.Summary = node.Value;
node = node.Next;
shopMilesCampaign.AccountName = node.Value;
node = node.Next;
shopMilesCampaign.Category = node.Value;
node = node.Next;
shopMilesCampaign.Sector = node.Value;
node = node.Next;
shopMilesCampaign.Details = node.Value;
node = node.Next;
shopMilesCampaign.Image = node.Value;
node = node.Next;
shopMilesCampaign.Status = 1;
node = node.Next;
shopMileCampaigns.Add(shopMilesCampaign);
}
foreach (ShopAndMilesCampaigns shopMileCampaign in shopMileCampaigns)
{
shopMileCampaign.Insert();
}
}
どのくらいのデータがありますか? XmlReaderは時には面倒です。データが大きい場合(XML自体が貧しい選択かもしれません)、XmlSerializer(オブジェクトモデルに逆シリアル化)またはXElement(DOMに解析する)が好きです。それから、より親切な形でそれを使ってください... –
データは大きくありません。すべてのURLは質問のような類似のデータを持っています。選択肢がなければ、私はこれらを試してみる –