1

我一直在寻找一种从 C# 中的 XML 文件中读取特定数据的方法。

示例 XML 文件:这里.

我正在尝试创建一种方法,在给定 id 属性(例如“17392”,参见示例)的情况下,可以返回该特定类型 id 的最高购买价格。

我一直在寻找几个小时,老实说,我在我的头上。任何帮助表示赞赏。

4

4 回答 4

3

为我工作

    XDocument xdoc = XDocument.Load(@"MyFile.xml");
        var lv1s = from lv1 in xdoc.Descendants("type")
                   .Where(l => (string) l.Attribute("id") == "17392")
                   .Descendants("buy")
                   select (string)lv1.Element("max");


        string Result = "";
        foreach (var lv1 in lv1s)
        {
            Result = lv1.ToString();
        }

说明:它首先加载 xml 文件,然后根据您的要求循环遍历其后代(“ type ”),其中其属性(“ id ”)为17392,然后向下一层选择后代(“购买“)并从购买中选择最大元素。简而言之,它只是遵循树的结构

于 2013-04-17T05:14:47.200 回答
2

您可以使用HttpClientLINQ to XML:

string url = "...";

var client = new HttpClient();
string xml = client.GetStringAsync(url).Result;

var result = XDocument.Parse(xml).Descendants("type")
    .Where(e => (string) e.Attribute("id") == "17392")
    .Descendants("buy")
    .Select(e => (string) e.Element("max"))
    .FirstOrDefault();
于 2013-04-17T04:54:42.140 回答
0

请通过以下链接。详细解释。

根据您的要求,您可以使用 contains() 方法过滤具有给节点的 id 的特定标签数据。

于 2013-04-17T04:43:21.153 回答
0

我正在手机上打字,请原谅我的外壳,我看不到 XML 结构。所以我假设带有价格的节点称为priceNode。

var xml = XDocument.Load(URL);

var q = xml.Root.Elements().First(x=> x.Attributes.Any() && x.Attribute("id") =="17392").Elements("PriceNode").Max(n= > n.值);

于 2013-04-17T05:03:04.590 回答