【发布时间】:2013-12-07 07:35:51
【问题描述】:
假设我们有以下看起来像的 XML 文件
<model uri="model1">
<PriceData>
<value price="24.28" date="2013-12-01"/>
<value price="22.34" date="2013-12-02"/>
<value price="24.12" date="2013-12-03"/>
</PriceData>
</model>
<model uri="model2">
<PriceData>
<value price="24.28" date="2013-12-01"/>
<value price="22.34" date="2013-12-02"/>
<value price="24.12" date="2013-12-03"/>
</PriceData>
</model>
这可以继续适用于许多型号和价格。我搜索了一种在不同列表(或数组)中解析每个模型的价格的方法,而无需手动进行,即预分配列表等,因为模型的数量不会一直相同。那么我怎样才能为不同型号制作“桶”价格呢?到目前为止我尝试的是
using System;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Collections.Generic;
namespace test
{
class Program
{
static void Main(string[] args)
{
string file = @"C:\Users\user\Desktop\test.xml";
XDocument doc = XDocument.Load(file);
List<string> priceData = new List<string>();
List<string> modelName = new List<string>();
foreach (var imovel in doc.Root.Descendants("model"))
{
modelName.Add(imovel.Attribute("uri").Value);
}
int modelNum = modelName.Count();
foreach (var item in doc.Descendants("value"))
{
var doubleAttr = item.Attribute("price");
if (doubleAttr == null) continue;
priceData.Add(item.Attribute("price").Value);
}
//Console.WriteLine(modelName[0]);
Console.ReadKey();
}
}
}
但在这种情况下,第二个 foreach 循环获取列表中所有模型的价格。我试图得到一些想法......我的咖啡是空的:-(
【问题讨论】: