gpt4 book ai didi

c# - XML 元素到 Linq

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:33 25 4
gpt4 key购买 nike

我试图显示我需要的所有信息,从 XML 到 datagridview1。 XML 有一个 <Product>包含它自己的属性和几个具有自己的属性的元素的标签。

看起来像这样:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Import>
<Products>
<Product Id="1" Name="prodcut1">
<Prices price=10,10/>
<Barcodes barcode="123123123123"/>
</Product>

<Product Id="2" Name="Product2">
<Prices price=9,9/>
<Barcodes Barcode="123123123123"/>
</Product>


</Products>

</Import>

据我所知,由于 datagridview 不能显示多个表(即 dataGrid1.DataSource = dataSet.Tables[1]; ),我尝试使用 Linq 和匿名类型来选择我想要的任何内容,并在每个 <Product> 的一行中显示它标签。在数据网格上它应该看起来像这样:

id | Name         | Barcode | Price
1 product1 123... 10,10
2 product2 123.... 9,9

到目前为止,我写这个是为了显示 <Product>及其属性“id”和“name”:

XElement ProdXML = XElement.Load(@"C:\Export\ppp.xml");
var query = from st in ProdXML.Descendants("Product")
select new
{
Id = st.Attribute("Id").Value,
name = st.Attribute("Name").Value,

};
dataGridView1.DataSource = query.ToList();

有没有办法检索Prices => PriceBarcodes => barcodeSelect里面?

最佳答案

是的,你只需要访问元素:

XElement ProdXML = XElement.Load(@"C:\Export\ppp.xml");
var query = from st in ProdXML.Descendants("Product")

select new
{
Id = st.Attribute("Id").Value,
name = st.Attribute("Name").Value,
price = st.Element("Prices").Attribute("Price").Value,
barcode = st.Element("Barcodes").Attribute("Barcode").Value
};
dataGridView1.DataSource = query.ToList();

关于c# - XML 元素到 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com