如何从XML URL字符串获取元素ID

时间:2019-05-08 15:36:13

标签: c# .net

我需要将一些xml数据导入到我的应用程序中,但是我无法找到如何从product元素中获取element属性。

我真的没有尝试过任何事情,因为我不知道如何解决此问题。

这是我拥有的xml文件:

<Products>
<Product Id="2108">
<EAN>7081014655182</EAN>
<Title>MaCo Roodschillige aardappelen</Title>
<Brand>MaCoFood</Brand>
<Shortdescription>Veelzijdige rode aardappel</Shortdescription>
<Fulldescription/>
<Image>https://www.mupload.nl/img/bg193vurxpk.jpg</Image>
<Weight>1 kg</Weight>
<Price>0.00</Price>
<Category>Aardappel, groente, fruit</Category>
<Subcategory>Aardappelen</Subcategory>
<Subsubcategory>Aardappel - ongeschild</Subsubcategory>
</Product>
</Products>

这就是我获取其余属性的方式

 string xmlurl = "https://supermaco.starwave.nl/api/products";

            var doc = XDocument.Load(xmlurl);



            List<Products> itemlist = doc.Root
                .Descendants("Product")
                .Select(node => new Products
                {
                    Id = int.Parse(node.Element("Id").Value),
                    EAN = node.Element("EAN").Value,
                    Brand = node.Element("Brand").Value,
                    Shortdescription = node.Element("Shortdescription").Value,
                    Fulldescription = node.Element("Fulldescription").Value,
                    Image = node.Element("Image").Value,
                    Weight = node.Element("Weight").Value,
                    Price = double.Parse(node.Element("Price").Value),
                    Category = node.Element("Category").Value,
                    Subcategory = node.Element("Subcategory").Value,
                    Subsubcategory = node.Element("Subsubcategory").Value
                })
                .ToList();

            foreach (var item in itemlist)
            {
                Console.WriteLine("EAN : " + item.EAN );
            }

            return Ok();

请注意,“ Id = int.Parse(node.Element(“ Id”)。Value)“不起作用。

我希望有人能告诉我如何从Product元素中获取id元素。提前谢谢。

1 个答案:

答案 0 :(得分:0)

Id不是element,它称为XML Attribute

只需使用node.Attribute("Id").Value

不过,我还是建议您尝试使用XmlSerializer,以便管理字段的映射。搜索它,您会发现很多教程。然后,您可以使用同时映射元素和属性的属性来装饰Product类。