C# 使用Linq从联机XML文件读取数据
我一直在寻找一种从C语言的XML文件中读取特定数据的方法 示例XML文件: 我试图创建一个方法,在给定id属性(如17392)的情况下,请参见示例,该方法可以返回特定类型id的最大购买价格C# 使用Linq从联机XML文件读取数据,c#,xml-parsing,linq-to-xml,C#,Xml Parsing,Linq To Xml,我一直在寻找一种从C语言的XML文件中读取特定数据的方法 示例XML文件: 我试图创建一个方法,在给定id属性(如17392)的情况下,请参见示例,该方法可以返回特定类型id的最大购买价格 我已经找了好几个小时了,老实说,我已经不知所措了。非常感谢您的帮助。请仔细阅读以下内容。详细解释 根据您的要求,您可以使用contains方法过滤特定标记数据,并将id提供给节点。请执行以下操作。详细解释 根据您的要求,您可以使用contains方法过滤特定标记数据,并将id提供给节点。您可以与LINQ to
我已经找了好几个小时了,老实说,我已经不知所措了。非常感谢您的帮助。请仔细阅读以下内容。详细解释
根据您的要求,您可以使用contains方法过滤特定标记数据,并将id提供给节点。请执行以下操作。详细解释 根据您的要求,您可以使用contains方法过滤特定标记数据,并将id提供给节点。您可以与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();
您可以将LINQ与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();
我在电话上打字,所以请原谅我的大小写,我看不到XML结构。所以我假设有价格的节点叫做priceNode var xml=XDocument.LoadURL
var q=xml.Root.Elements.Firstx=>x.Attributes.Any&&x.Attributeid==17392.ElementsPriceNode.Maxn=>n.Value 我在电话上打字,所以请原谅我的大小写,我看不到XML结构。所以我假设有价格的节点叫做priceNode var xml=XDocument.LoadURL var q=xml.Root.Elements.Firstx=>x.Attributes.Any&&x.Attributeid==17392.ElementsPriceNode.Maxn=>n.Value 为我工作
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文件,然后根据您的要求在其子类型中循环,其属性id为17392
从这一点开始,它向下一级选择子代buy,然后从buy中选择max元素。简言之,它只遵循您为我工作的树的结构
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文件,然后根据您的要求在其子类型中循环,其属性id为17392
从这一点开始,它向下一级选择Substands buy,然后从buy中选择max元素。简而言之,它只是遵循树的结构看起来System.Net.Http不再包含在.Net中。有什么方法可以添加它吗?@Serendipity:您使用的是.NET的哪个版本?@Cuolong Le:我使用的是.NET版本4。看起来.NET中不再包含System.NET.Http。有什么方法可以添加它吗?@Serendipity:你使用的是哪个版本的.NET?@Cuolong Le:我使用的是.NET版本4它可以工作,谢谢。我完全不知道它是怎么工作的,但不管怎样,谢谢。它工作了,谢谢。我完全不知道它是如何工作的,但不管怎样,谢谢。