0

这是我正在处理的 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);
        }

这将为我提供元素值中所有数字的值。我遇到的问题是,如果元素“名称”等于“周期”或“延迟”,我只需要该值。由于这些发生在价值之后,我不知道如何解决这个问题。

4

1 回答 1

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");
于 2013-03-26T19:41:01.203 回答