ノードを次のように変換したいと思います。
<Element>
<Type>Type1</Type>
<Quantity>q1</Quantity>
</Element>
(型ノードの値は列挙型から取得されます) に:
<Element>
<Type1>q1</Type1>
</Element>
両方のノードが存在する場合のみ。それ以外の場合、ノード<Quantity>
が存在しない<LastDate>
が代わりにノードが存在する場合、このノード:
<Element>
<Type>Date</Type>
<LastDate>date string</LastDate>
</Element>
になります:
<Element>
<Date>date string</Date>
</Element>
したがって、新しいノードの名前は常にノードの値から取得されます<Type>
が、その値は親<Element>
ノードの別の子ノード (存在する場合) から取得される場合があります。値を含む子ノードは、ノードとともに最終出力で削除され<Type>
ます。
Linq to XML C# コードでこれを行うのに問題はありません。ただし、この種の変換は複数の異なるノードに適用される可能性があるため、どのノードがどのように影響を受けるかを指定する、プログラムへのコマンド ライン入力が複雑になります。
対照的に、xslt には、単純な変換を自己文書化するという付加価値があります。