【发布时间】:2016-05-18 09:13:22
【问题描述】:
我在使用 Linq 构建包含 XML 数据的对象时遇到问题。例如,我在 url http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142 中有 XML 数据。在MarketStat 类中我想持有type id 值,在MarketValue 类数组中我想持有volume avg max min stddev median percentilevalues sellall 节点。到目前为止我从未使用过 linq,所以请帮助我在下面的代码中解决我的问题:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace ConsoleApplication1
{
internal class MarketValue
{
public int Volume { get; set; }
public double Avg { get; set; }
public double Max { get; set; }
public double Min { get; set; }
public double Stddev { get; set; }
public double Median { get; set; }
public double Percentile { get; set; }
}
internal class MarketStat
{
public string Name { get; set; }
public MarketValue[] MarketValueses { get; set; }
}
internal class Program
{
private static List<MarketStat> list;
internal static void Main(string[] args)
{
list = (
from e in XDocument.Load("http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142").
Root.Elements("marketstat")
select new MarketStat
{
Name = (string) e.Element("type id"),
MarketValueses = (
from mv in e.Elements("buy")
select new MarketValue
{
Volume = (int) mv.Element("volume"),
Avg = (double) mv.Element("avg"),
Max = (double)mv.Element("max"),
Min = (double)mv.Element("min"),
Stddev = (double)mv.Element("stddev"),
Median = (double)mv.Element("median"),
Percentile = (double)mv.Element("percentile")
}).ToArray()
}).ToList();
}
}
}
【问题讨论】:
-
您的链接只带回一组数字,而不是任何 XML。也许这个 QA 可以帮助你:stackoverflow.com/questions/10518372/…
-
@John,它返回 XML;可能您的浏览器只是将其视为 HTML 而不是原始显示。
-
好的,请注意。我认为提到的 QA 将有助于序列化对象。