短縮版:
VB 用の LINQ to XML のサンプル、または 1 つの XML 要素を別の XML 要素に変更する方法の XSLT で (変更されていないすべての要素の要素ごとのコピーをハードコーディングせずに) 誰かが提案またはサンプルを提供できますか?
バックグラウンド:
<collection
>および複数の<dvd
>要素であるルートエントリを含む、適切に形成されていると思われるXMLファイルがあります。DVD には、以下に示すように、ジャンルとタグがあります。(簡単にするために、他の多くの要素を切り取っています)。
私がやりたいことは<Tag
、存在する可能性のあるすべての > 要素を追加の<Genre
> に変えることです。たとえば、以下のエントリでは、<Genre
>Kids </Genre
> を追加する必要があります。(実際に TAG 要素の NAME 属性を GENRE 要素に変えようとしているのはわかっていますが、「Tag」と呼ばれる新しい GENRE を作成する方法さえ理解できれば、もっと先に進むことができますそして、おそらく残りを理解することができます.)
私は XML を使って多くのことをしたことがありません。私の理解では、XSLT 変換ファイルと XSLCompiledTransform を使用するか、LINQ to XML を使用することができます (私は Visual Basic 9 を使用しており、VB 内ですべて実行したいと考えています)。[他にも多くのアプローチがあると確信しています。]
問題は、ある要素を別の要素に変換する方法を教えてくれる XSLT または LINQ 構文の例が見つからないことです。すべての要素を 1 つずつコピーするのに十分な LINQ を書き出すことはできますが、変更されないすべての要素のコピーをハードコーディングするよりも簡単な方法が必要です。(あるに違いない!)
したがって、知っている人が私に例を示したり、LINQ や XSLT のスターター コードを少し教えてくれたりしたら、私は永遠に感謝します (OK、永遠ではないかもしれませんが、少なくとも長い間!)。
ありがとう。
サンプル XML:
<Collection>
<DVD>
<ID>0000502461</ID>
<Title>Cirque du Soleil: Alegría</Title>
<Released>2002-05-31</Released>
<RunningTime>90</RunningTime>
<Genres>
<Genre>Family</Genre>
<Genre>Music</Genre>
</Genres>
<Overview>What if anything were possible? What if ...
</Overview>
<Notes/>
<Tags>
<Tag Name="Kids" FullName="Kids"/>
</Tags>
</DVD>
</Collection>