2

XElement クラスを使用して XML ファイルを動的に生成します。関心のあるシーケンスは次のようになります。

<Actions>
    <Action Id="35552" MailRuId="100000">
      <ActionTypeId>2</ActionTypeId>
      <GenreTypeId>16</GenreTypeId>
    </Action>
    <Action Id="36146" MailRuId="100001">
      <ActionTypeId>7</ActionTypeId>
      <GenreTypeId>2</GenreTypeId>
      <ActionDate Id="127060" FreeTicketsCount="26" ReservedTicketsCount="3">06.09.2013 18:00:00</ActionDate>
    </Action>
</Actions>

「ActionDate」子ノードが存在しない場合、「Action」ノードを削除したいと考えています。

XML ファイルを生成するコードは次のようになります。

var actionElement = new XElement("Action",
    new XElement("ActionTypeId", first.ActionTypeId),
    new XElement("GenreTypeId", first.GenreTypeId));

IEnumerable<XElement> seanceElements = infos
    .GroupBy(ti => ti.ActionDate)
    .Select(CreateSeanceElement);

actionElement.Add(seanceElements);

CreateSeanceElement メソッドは「ActionDate」ノードを作成しますが、先ほど述べたように、作成できる場合と作成できない場合があります。

4

2 に答える 2