以下是我正在处理的XML:
到目前为止我的代码:
XDocument doc = XDocument.Load(@"C:\Users\morganjo\Desktop\bb-tasks.xml");
var q = from val in doc.Descendants("property")
select (string)val.Attribute("value");
foreach (string str in q)
{
Console.WriteLine(str);
}
这将获得元素值中所有数字的值。我遇到的问题是,如果元素'name'等于'period'或'delay',我只需要值。由于这些值发生在value之后,我不知道如何获取关于这个。
答案 0 :(得分:1)
属性顺序无关紧要。您可以使用它来获取值并过滤元素:
var q = from val in doc.Descendants("property")
where (string)val.Attribute("name") == "delay" || (string)val.Attribute("name") == "period"
select (string)val.Attribute("value");
或使用let
关键字获取属性值,然后使用它两次:
var q = from val in doc.Descendants("property")
let name = (string)val.Attribute("name")
where name == "delay" || value == "period"
select (string)val.Attribute("value");