从XElement中删除父项

时间:2012-07-12 22:02:27

标签: c# xml xelement

如何从xml“Tickets”中删除父标记,其余节点应该在那里

<Tickets>
    <Extract_Date>2011-02-25 00:00:00</Extract_Date>
    <Ticket>
        <Ticket_Number>INC000000578057</Ticket_Number>
        <Status>
            <Value>Cancelled</Value>
            <Reason>Cancelled by user</Reason>
        </Status>
    </Ticket>
</Tickets>

2 个答案:

答案 0 :(得分:3)

.Elements()的{​​{1}}方法会返回该元素的所有子元素。

XElement

当然,当你可以直接调用IEnumerable<XElement> GetElementsWithoutParent(XElement element) { return element.Elements(); } 方法时,这样的方法会很愚蠢,但它说明了这一点。

请注意,您不再拥有.Elements(),而是XElement集合。只需调用XElement,就无法再获得XML表示。要获取XML,您需要使用.ToString()并附加每个元素。并且它不能代表没有根节点的XML文档。

答案 1 :(得分:2)

  

希望序列化其他节点并将其保存到DB,同时反序列化动态添加父

XElement newRoot = ........
newRoot.Add(orgXDoc.Element("Tickets").Elements());