0

LINQ to xml を使用して C# でクエリを実行しようとしている次の構造の xml ドキュメントがあります。

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

XMLに含まれているものに関する情報を判断し、それに基づいてオブジェクトを構築するためにクエリを実行しようとしています。

"repeat" 要素内では、その要素のタイトルは (サンプルのように) 毎週、毎日、毎月、または毎年にすることができます。

週間要素の選択に問題があります。毎週呼び出されるかどうかわからないので、以下にしようとしています

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

次のコードをコンソール アプリケーションに配置しましたが、要素が null ではありません。あなた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 に答える