XML 要在 c# 中列出的数据
XML data to list in c#
我的xml数据:
<products>
<group groupcontractno="106" groupcontractversion="40">
<product groupcontractno="106" groupcontractversion="40" cobno="1" productno="100" cobproductversion="4">
<productname>Båtförsäkring</productname>
</product>
<product groupcontractno="106" groupcontractversion="40" cobno="1" productno="112" cobproductversion="1">
<productname>Vattenskoterförsäkring</productname>
</product>
</group>
<group>
...
</grpup>
</products>
型号class:
public class GroupContract
{
public string groupcontractno { get; set; }
public IList<Products> products { get; set; }
}
public class Products
{
public string productname { get; set; }
}
我想用 group
创建列表,然后在每个 group
列表中都有一个 products
列表。
这就是我尝试过的:
List<Products> productList = new List<Products>();
List<GroupContract> groupcontractList = groupedData.Descendants("group")
.Select(d => new GroupContract
{
groupcontractname = d.Attribute("groupcontractno").Value,
products = productList.Select(e => new Products
{
productname = d.Descendants("product").Descendants("productname").First().Value
}).ToList()
}).ToList();
它确实创建了 group
个列表,但在 products
个列表中是空的,任何人都可以更正我的代码,将不胜感激!
这是您要查询的内容:
List<GroupContract> groupcontractList = groupedData.Descendants("group")
.Select(d => new GroupContract
{
groupcontractno = d.Attribute("groupcontractno").Value,
products = d.Elements("product").Select(e => new Products
{
productname = d.Descendants("product").Descendants("productname").First().Value
}).ToList()
}).ToList();
主要,变化:
products = productList.Select(...
到
products = d.Elements("product").Select(...
而不是 productList.Select
,使用您的组 d
并将所有 product
子元素放入列表中。然后你可以折腾你的productList
变量。
我的xml数据:
<products>
<group groupcontractno="106" groupcontractversion="40">
<product groupcontractno="106" groupcontractversion="40" cobno="1" productno="100" cobproductversion="4">
<productname>Båtförsäkring</productname>
</product>
<product groupcontractno="106" groupcontractversion="40" cobno="1" productno="112" cobproductversion="1">
<productname>Vattenskoterförsäkring</productname>
</product>
</group>
<group>
...
</grpup>
</products>
型号class:
public class GroupContract
{
public string groupcontractno { get; set; }
public IList<Products> products { get; set; }
}
public class Products
{
public string productname { get; set; }
}
我想用 group
创建列表,然后在每个 group
列表中都有一个 products
列表。
这就是我尝试过的:
List<Products> productList = new List<Products>();
List<GroupContract> groupcontractList = groupedData.Descendants("group")
.Select(d => new GroupContract
{
groupcontractname = d.Attribute("groupcontractno").Value,
products = productList.Select(e => new Products
{
productname = d.Descendants("product").Descendants("productname").First().Value
}).ToList()
}).ToList();
它确实创建了 group
个列表,但在 products
个列表中是空的,任何人都可以更正我的代码,将不胜感激!
这是您要查询的内容:
List<GroupContract> groupcontractList = groupedData.Descendants("group")
.Select(d => new GroupContract
{
groupcontractno = d.Attribute("groupcontractno").Value,
products = d.Elements("product").Select(e => new Products
{
productname = d.Descendants("product").Descendants("productname").First().Value
}).ToList()
}).ToList();
主要,变化:
products = productList.Select(...
到
products = d.Elements("product").Select(...
而不是 productList.Select
,使用您的组 d
并将所有 product
子元素放入列表中。然后你可以折腾你的productList
变量。