我需要将一些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元素。提前谢谢。
答案 0 :(得分:0)
Id不是element
,它称为XML Attribute
。
只需使用node.Attribute("Id").Value
。
不过,我还是建议您尝试使用XmlSerializer
,以便管理字段的映射。搜索它,您会发现很多教程。然后,您可以使用同时映射元素和属性的属性来装饰Product
类。