Je suis un nouveau à la programmation, et j'ai un sérieux problème et je ne peux pas m'en sortir.Obtenir la valeur de XML tag xith XMLReader et ajouter à LinkedList C#
J'ai 5 URL XML. tel que http://www.shopandmiles.com/xml/3_119_3.xml
Ceci est une URL XML que je dois obtenir des valeurs et écrire dans la base de données dans des colonnes connexes. Mes noms de colonnes et les noms de balises XML correspondent. Lorsque j'écris le code ci-dessous, l'élément lecteur manque les valeurs xml nulles. Certaines balises n'ont pas de valeur à l'intérieur. Je dois les ajouter null à linkedlist car après ce code, je suis en train de parcourir la liste chaînée mais l'ordre ne correspond pas si je ne peux pas ajouter une valeur pour les valeurs null xml. Donc, les noms de colonnes et les données à l'intérieur ne correspondent pas. je perds la commande. Tout mon code est ici, vous pouvez également vérifier les commentaires dans le code si cela vous aide. Merci à tous.
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();
}
}
Quelle est la taille des données? XmlReader est assez difficile parfois; à moins que les données soient volumineuses (dans ce cas, XML lui-même peut être un mauvais choix), je préférerais XmlSerializer (désérialiser dans un modèle objet) ou XElement (analyser dans un DOM). Ensuite, travaillez avec lui sous une forme plus conviviale ... –
Les données ne sont pas trop grandes. Toutes les URL ont des données similaires à celle que je donne dans la question. S'il n'y a pas de choix, je vais essayer ces –