我不太清楚怎麼問這個,或者如果存在的話,但我有一個需要比其他同一個了結precendence合併兩個XElements,成爲一個元素。合併兩個XElements
的偏愛這裏是VB.NET和LINQ,但如果它演示瞭如何做到這一點沒有我的編碼人工挑開,並解決每一個元素和屬性的任何語言將是有益的。
例如,假設我有兩個元素。幽默我對他們是不同的,因爲他們是。
<HockeyPlayer height="6.0" hand="left">
<Position>Center</Position>
<Idol>Gordie Howe</Idol>
</HockeyPlayer>
2.
<HockeyPlayer height="5.9" startinglineup="yes">
<Idol confirmed="yes">Wayne Gretzky</Idol>
</HockeyPlayer>
合併的結果將是
<HockeyPlayer height="6.0" hand="left" startinglineup="yes">
<Position>Center</Position>
<Idol confirmed="yes">Gordie Howe</Idol>
</HockeyPlayer>
注意幾件事:height
屬性VAL #1超過#2。 hand
屬性和值只是從#1複製而來(它不存在於#2中)。來自#2的startinglineup
屬性和值被複制(它不存在於#1中)。 #1中的Position
元素已被複制(它不存在於#2中)。 #1中的Idol
元素值覆蓋#2,但#2的屬性confirmed
(它不存在於#1中)被複制。
淨淨,#1採取precendence在#2,其中存在衝突(意味着兩者都具有相同的元件和/或屬性),並且其中不存在衝突,它們都拷貝到最終結果。
我試圖尋找這一點,但似乎無法找到任何東西,可能是因爲我使用的搜索詞是太普通。任何想法或解決方案(特別是Linq)?
這是輝煌的,謝謝。我非常感謝您爲此付出的努力和洞察力! – 2009-12-17 13:01:14