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();