在解析XML文档时,我是一个新手。 我有以下要解析的XML文档:http://www.petrol.eu/api/fuel_prices.xml
获得
的价格目前我正在使用以下代码:
XDocument xDoc = XDocument.Load("http://www.petrol.eu/api/fuel_prices.xml");
var list = xDoc.Descendants("country").Where(t => t.Attribute("label").Value=="Slovenia").ToList();
foreach (var country in list)
{
var s95 = country.Elements("pricetype").First(p => p.Attribute("type").Value == "price").Value;
txtBVnosi.Text = s95;
}
我知道代码是错误的。我现在有点丢失,因为我不知道如何正确地获取价格,因为它是一个非常复杂的结构化XML,我发现的所有其他问题都是为了更简单的XML文件。
答案 0 :(得分:0)
首先,您需要查看fuel
元素以检索价格。
要获得每种燃料的所有价格,我建议使用Dictionary
:
Dictionary<string, string> prices = new Dictionary<string, string>();
foreach (var fuel in country.Elements("fuel"))
{
prices.Add(
fuel.Attribute("type").Value,
fuel.Element("priceType").Elements().First(p => p.Attribute("type").Value == "price").Value);
}
之后,您可以轻松获得具体价格:
var s95 = prices["95"];
但是,因为我猜(基于代码中变量的名称)你想得到燃料类型95的价格,这个查询也会起作用:
var s95 = country.Elements("fuel")
.First(f => f.Attribute("type").Value == "95")
.Element("priceType")
.Elements()
.First(p => p.Attribute("type").Value == "price").Value;