프로그래밍에 익숙하지 않고 심각한 문제가 발생하여 그것을 벗어날 수 없습니다.XML 태그 xith XMLReader의 가치 얻기 및 LinkedList에 추가 C#
5 개의 XML URL이 있습니다. http://www.shopandmiles.com/xml/3_119_3.xml
값을 가져 와서 관련 열의 데이터베이스에 써야하는 XML URL입니다. 열 이름과 XML 태그 이름이 일치합니다.
아래 코드를 작성하면 reader 요소에서 null xml 값이 누적됩니다. 일부 태그에는 값이 없습니다. 나는 그 링크 된 목록에 null을 추가해야한다. 왜냐하면 그 코드 이후에, 링크 된리스트를 통과 할 것이지만, ı 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은 질문과 비슷한 데이터를 가지고 있습니다. 선택의 여지가 없다면 나는 이것들을 시도 할 것이다. –