我一直在寻找一种从 C# 中的 XML 文件中读取特定数据的方法。
示例 XML 文件:这里.
我正在尝试创建一种方法,在给定 id 属性(例如“17392”,参见示例)的情况下,可以返回该特定类型 id 的最高购买价格。
我一直在寻找几个小时,老实说,我在我的头上。任何帮助表示赞赏。
我一直在寻找一种从 C# 中的 XML 文件中读取特定数据的方法。
示例 XML 文件:这里.
我正在尝试创建一种方法,在给定 id 属性(例如“17392”,参见示例)的情况下,可以返回该特定类型 id 的最高购买价格。
我一直在寻找几个小时,老实说,我在我的头上。任何帮助表示赞赏。
为我工作
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,然后向下一层选择后代(“购买“)并从购买中选择最大元素。简而言之,它只是遵循树的结构
您可以使用HttpClient
LINQ 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();
请通过以下链接。详细解释。
根据您的要求,您可以使用 contains() 方法过滤具有给节点的 id 的特定标签数据。
我正在手机上打字,请原谅我的外壳,我看不到 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.值);