短版:LINQ或XSLT把一個元素到另一個在Visual Basic 9
任何人都可以建議或LINQ to XML中的VB提供的樣品,或在如何一個XML元素來改變成另一種的XSLT (沒有硬編碼所有未改變的元素的逐元素拷貝)?
背景:
我有一個XML文件,我認爲適當地形成,包含根條目是<collection
>和多個<dvd
>元素。在DVD中,有流派和標籤,如下所示。 (爲了簡單起見,我剪掉了很多其他元素)。
我想要做的就是將任何可能存在的元素轉換爲另一個<Genre
>。例如,在下面的條目,我需要添加<Genre
>兒童</Genre
>。 (我知道這實際上是我期待變成體裁元素的標記元素的name屬性,但如果我甚至可以弄清楚如何創建一個名爲新流派「標籤」,我會提前更遠並且也許可以解出休息。)
我從來沒有做過任何與很多XML。我的理解是,我可以使用XSLT轉換文件和XSLCompiledTransform或者我可以使用LINQ到XML(我有Visual Basic 9,寧可做VB的所有內部)。 [我敢肯定有一些其他的辦法了。]
麻煩的是,我無法找到告訴我怎麼把一個元素到另一個XSLT或LINQ語法中的任何實例。我可以寫出足夠多的LINQ來逐個拷貝所有的元素,但是與對不變的所有元素的拷貝進行硬編碼相比,這需要更簡單的方法! (有一定是!)
因此,如果有人誰知道會指出我的例子或者給我拿一點的LINQ或XSLT啓動代碼,我將永遠感激(好吧,也許不是永遠,但至少很長一段時間!)。
謝謝。
示例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>
不錯的解釋,但第二個樣式表規則和結果(沒有區別輸入?!)似乎是錯誤 – phihag 2008-11-27 00:35:09