0

我有一个以下结构的 xml 文档,我正在尝试使用 LINQ to xml 在 C# 中查询

<recurrence>
    <rule>
        <firstDayOfWeek>mo</firstDayOfWeek>
        <repeat>
            <weekly mo="TRUE" fr="TRUE" weekFrequency="1" />
        </repeat>
    <repeatForever>FALSE</repeatForever>
    </rule>
</recurrence>

我正在尝试查询它以确定有关 xml 中包含的内容的信息并基于此构建对象。

在“重复”元素中,元素的标题可以是每周(如示例中)每天、每月或每年。

我在选择每周元素时遇到问题。因为我不确定它会被每周调用一次,所以我试图在下面

XDocument info = XDocument.Parse(source.RecurrenceData);

var data = from d in info.Descendants("recurrence").Descendants("rule").Descendants("repeat") 
           select d;

var element = data.Elements().First();

这总是以空值出现。对我来说,选择这个元素最简单的方法是什么,无论是每日、每周、每月还是每年的元素,然后确定其中可能包含或不包含的各种属性?

4

1 回答 1

0

我已将以下代码放在控制台应用程序中,并且该元素不为空。你确定你source.RecurrenceData是对的吗?

string xml = @"<recurrence>
                <rule>
                    <firstDayOfWeek>mo</firstDayOfWeek>
                    <repeat>
                        <weekly mo=""TRUE"" fr=""TRUE"" weekFrequency=""1"" />
                    </repeat>
                <repeatForever>FALSE</repeatForever>
                </rule>
            </recurrence>";

XDocument info = XDocument.Parse(xml);

var data = from d in info.Descendants("recurrence").Descendants("rule").Descendants("repeat") select d;

var element = data.Elements().First();
于 2012-11-12T13:15:40.220 回答