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获得所有的测序信息,因为它需要得到当地测序和共享测序)
感谢所有。
好吧,我已经做了一个相当具体的解决方案,如果有人想看到它,然后让我知道。我无法想象它会帮助任何人。但是如果你知道一种不同的方式,而不是长时间使用c#的功能,请随时让我知道。谢谢。 – Shannow 2011-01-28 10:02:56