我使用 LINQ to XML 删除标签并将其插入到 xml 文档中。我经常遇到的一种情况是,我对插入特定标签的位置有偏好,但这种偏好并不总是能得到满足。例如,在这里我更喜欢在具有相同 CalendarCode 的最后一个元素之后插入它:
elements = from e in calendarDocument.Descendants("ExceptionalSessions") where e.Element("CalendarCode") == calendarCode select e;
elements.Last().AddAfterSelf(sessionElement);
但是,有时要插入的元素是该文档中具有该 CalendarCode 的第一个此类元素,因此额外条件:
where e.Element("CalendarCode") == calendarCode
将创建一个空的结果集。在这种情况下,我想使用没有附加条件的查询。这是一次性的事情,在插入带有该日历代码的元素后,我希望在第一个元素之后插入具有相同 CalendarCode 的 NEXT 元素......在这种情况下,我想使用该查询附加条件。
我尝试了几种方法来解决这个问题,但它们看起来都非常粗糙并且可能效率低下,我不禁认为有更好的方法。
如果他们遇到过这种情况,谁能给我一个想法。