Xml Reader Читать теги

Я должен прочитать XML-файл. Я сделал это, но у меня была проблема. У меня есть XML как это

  <?xml version="1.0" encoding="windows-1254" ?> 
- <Xm>
- <Products>
  <Product_No>NT-7</Product_No> 
  <Stok>1</Stok> 
  <Product_Details>something</Product_Details> 
  <Desi>0,2</Desi> 
- <Variant>
  <VariantAd>size</VariantAd> 
  <Options>68 cm</Options> 
  </Variant>
  </Products>
- <Products>
  <Product_No>NT-15</Product_No> 
  <Stok>1</Stok> 
  <Product_Details>something</Product_Details> 
  <Desi>0,2</Desi> 
- <Variant>
  <VariantAd>size</VariantAd> 
  <Options>68 cm</Options> 
  <Options>74 cm</Options> 
  </Variant>
  </Products>
  </Xm>

Я могу читать все, но моя проблема в том, что я не могу выбрать разные варианты.

  <Options>68 cm</Options> 
  <Options>74 cm</Options> 

Я не могу читать это вместе. Мне нужно прочитать это вместе и соединить их как строку.

System.Xml.XmlNodeList lst = root.GetElementsByTagName("Product_No");
foreach (System.Xml.XmlNode n in lst)
{
    Product_No.Add(n.InnerText);
}
lst = root.GetElementsByTagName("Stok");
foreach (System.Xml.XmlNode n in lst)
{
    Stok.Add(n.InnerText);
}
lst = root.GetElementsByTagName("Product_Details");
foreach (System.Xml.XmlNode n in lst)
{
    Product_Details.Add(n.InnerText);
}
lst = root.GetElementsByTagName("Options");
foreach (System.Xml.XmlNode n in lst)
{
    Options.Add(n.InnerText);
}

Как я могу читать и присоединиться к ним?

1 ответ

Решение

Linq2Xml может сделать жизнь проще

var items = xDoc.Descendants("Products")
    .Select(p => new
    {
        ProductNo=p.Element("Product_No").Value,
        Stok = p.Element("Stok").Value,
        ProductDetails = p.Element("Product_Details").Value,
        Options = String.Join(";",p.Descendants("Options").Select(o=>o.Value))
    })
    .ToArray();
Другие вопросы по тегам