2016-12-18 4 views
0

Как закодировать итерации цикла через родительский тег на XML-файл, как показано ниже:Итерация тегов XML в C#

<collection> 
    <parent> 
     <child1>DHL</child1> 
     <child2>9000000131</child2> 
     <child3>ISS Gjøvik</child13> 
     <child4>ISS Gjøvik</child4> 
     <child5>ISS Gjøvik</child5> 
     <child6>9999000000136</child6> 
     </parent> 
     <parent> 
     <child1>DHL</child1> 
     <child2>9000000132</child2> 
     <child3>ISS Gjøvik</child13> 
     <child4>ISS Gjøvik</child4> 
     <child5>ISS Gjøvik</child5> 
     <child6>9999000000136</child6> 
     </parent> 
     <parent> 
     <child1>DHL</child1> 
     <child2>9000000134</child2> 
     <child3>ISS Gjøvik</child13> 
     <child4>ISS Gjøvik</child4> 
     <child5>ISS Gjøvik</child5> 
     <child6>9999000000136</child6> 
     </parent> 
</collection> 

Мне нужно вставить значение ребенка1 в качестве первичного ключа в БД.

+0

Я хотел бы использовать XML-сериализации и преобразовать это в объект и сделать его оттуда. – Seminda

ответ

1

Вы пробовали XmlReader? Что у вас есть? Пожалуйста, покажите нам какой-нибудь код. Напоминаем, что StackOverflow - это служба поддержки, а не служба программирования.

Я вижу DHL в одном из тегов. Если это относится к компании почтовой доставки, у них есть API (SDK), который прост в использовании из кода .NET.

Если вы хотите использовать сериализацию XML (de), которую я бы предложил начать читать документация пространства имен System.Xml.Serialization. Microsoft предоставила более чем достаточно документации и примеров.

Ссылка на пространство имен документов: https://msdn.microsoft.com/en-us/library/system.xml.serialization(v=vs.110).aspx

Вот некоторые примеры, которые содержат все, что вам потребуется, чтобы deserialzation документа XML в Poco класса: https://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.110).aspx

0

Предполагая, что ваш XML в строке переменной xml :

var xdoc = XDocument.Parse(xml); 
foreach (var parentEls in xdoc.Root.Elements("parent")) 
{ 
    string child1Value = parentEls.Element("child1").Value; 
    // your logic using child1 value 
} 

Обратите внимание, что ваш XML имеет неверный формат - <child3> закрыт </child13>.

0

Использование XML LINQ для разбора все, что

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument doc = XDocument.Load(FILENAME); 

      var results = doc.Descendants("parent").Select(x => new { 
       child1 = (string)x.Element("child1"), 
       child2 = (string)x.Element("child2"), 
       child3 = (string)x.Element("child3"), 
       child4 = (string)x.Element("child4"), 
       child5 = (string)x.Element("child5"), 
       child6 = (string)x.Element("child6") 
      }).ToList(); 
     } 
    } 
} 
Смежные вопросы