我不太清楚怎么问这个,或者如果存在的话,但我有一个需要比其他同一个了结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