【发布时间】:2018-03-16 20:19:37
【问题描述】:
我正在尝试将我需要的所有信息从 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();
有没有办法在Select 中检索Prices => Price 和Barcodes => barcode?
【问题讨论】:
-
嗯,是的,使用
st.Element("Prices")来获取Prices元素等。请注意,您的XML 当前无效,我真的希望 它会使用@ 987654333@ 作为小数点分隔符,而不是,。