2011-01-27 52 views
0

我想知道它是否可以合并具有不同名称空间的这些元素;Linq to XML,合并具有相同属性但名称空间不同的元素

 <imsss:objectives> 
     <imsss:primaryObjective objectiveID="ettiquette_completed"/> 
      <imsss:objective objectiveID="previous_sco_completed"> 
       <imsss:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.playing_completed" readNormalizedMeasure="true" readSatisfiedStatus="true" /> 
      </imsss:objective> 
     </imsss:objectives> 
     <adlseq:objectives> 
     <adlseq:objective objectiveID="ettiquette_completed"> 
      <adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.ettiquette_completed" readCompletionStatus="true" writeCompletionStatus="true"/> 
     </adlseq:objective> 
     <adlseq:objective objectiveID="previous_sco_completed"> 
      <adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.playing_completed" readCompletionStatus="true" writeCompletionStatus="false"/> 
     </adlseq:objective> 
     </adlseq:objectives> 

所以基本上我想有

<imsss:objectives> 
     <imsss:primaryObjective objectiveID="ettiquette_completed"> 
      <imsss:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.ettiquette_completed" readCompletionStatus="true" writeCompletionStatus="true"/> 
     </imsss:primaryObjective> 
      <imsss:objective objectiveID="previous_sco_completed"> 
       <imsss:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.playing_completed" readNormalizedMeasure="true" readSatisfiedStatus="true" readCompletionStatus="true" writeCompletionStatus="false/> 
      </imsss:objective> 
     </imsss:objectives> 

目前,我有一个LINQ查询具有相同属性的objectiveid把所有元素结合在一起,以结束;

   XElement seqColl = getSequencingCollection(identifier); 
       var ImssObj = seqColl.Element(imsss + "objectives").Elements(); 
       var AdlObj = seqColl.Element(adlSeq + "objectives").Elements(); 
       var newEl = from o in ImssObj 
          join a in AdlObj on o.Attribute("objectiveID").Value equals a.Attribute("objectiveID").Value 
          select new XElement(o.Name, new XAttribute(o.Attribute("objectiveID")), o.Elements(), a.Elements()); 

(该getSequencingCollection法正常工作从XML获得所有的测序信息,因为它需要得到当地测序和共享测序)

感谢所有。

+0

好吧,我已经做了一个相当具体的解决方案,如果有人想看到它,然后让我知道。我无法想象它会帮助任何人。但是如果你知道一种不同的方式,而不是长时间使用c#的功能,请随时让我知道。谢谢。 – Shannow 2011-01-28 10:02:56

回答

0

好吧,我已经做了一个相当具体的解决方案,如果有人想看到它,然后让我知道。我无法想象它会帮助任何人。但是如果你知道一种不同的方式,而不是长时间使用c#的功能,请随时让我知道。谢谢

相关问题