【发布时间】:2013-05-19 03:11:07
【问题描述】:
我正在尝试使用 LinQ 读取复杂的 XML 文件。
XML 文件有很多层次,如何在一个 ILIST 中获取所有值。项目中还有更多标签。enter code here
XML 具有以下语法:
<root>
<items>
<index_0>
<product_id>19</product_id>
<menu_rank>2</menu_rank>
<menu_country>Guatemala</menu_country>
<menu_country_code>502</menu_country_code>
<menu_country_abrv>GT</menu_country_abrv>
<menu_carrier>TIGO</menu_carrier>
<menu_value>7.0</menu_value>
</index_0>
<index_1>
<product_id>20</product_id>
<menu_rank>2</menu_rank>
<menu_country>Guatemala</menu_country>
<menu_country_code>502</menu_country_code>
<menu_country_abrv>GT</menu_country_abrv>
<menu_carrier>TIGO</menu_carrier>
<menu_value>10.0</menu_value>
</index_1>
<index_2>
<product_id>21</product_id>
<menu_rank>2</menu_rank>
<menu_country>Guatemala</menu_country>
<menu_country_code>502</menu_country_code>
<menu_country_abrv>GT</menu_country_abrv>
<menu_carrier>TIGO</menu_carrier>
<menu_value>14.0</menu_value>
</index_2>
</items>
</root>
我尝试过这种方法但没有成功:
var chartrate = from a in xmlDoc.Descendants("items")
select new
{
sub_id = a.Element("product_id").Value,
product = a.Element("menu_rank").Value,
description = a.Element("menu_country").Value
} ;
有什么建议吗?
【问题讨论】:
-
试图在元素名称中嵌入数据(
index_0、index_1、...)会给您带来麻烦。如果可以,请将其更改为<item index="0">。