【问题标题】:Split into xml files retaining few tags from base xml file using linq拆分为 xml 文件,使用 linq 从基本 xml 文件中保留少量标签
【发布时间】:2016-04-02 11:32:21
【问题描述】:

我有这个 xml 并希望根据 <order> 标签计数拆分为单个 xml 文件,保留基本 xml 中的几个标签。因为我是新来玩 xml 和 linq,所以我只是在谷歌搜索和问题堆栈溢出不符合我的要求。

<OrderList>
<Source>xml</Source>
<Organisation>org</Organisation>
<CreationDate>12/14/2015</CreationDate>
<Orders>
 <Order>
    <Name> Mobile </Name>
    <Price> 50.00</Price>
    <Quantity> 1 </Quantity>
 </Order>
  <Order>
    <Name> Accessories </Name>
    <Price> 50.00</Price>
    <Quantity> 5 </Quantity>
 </Order>
 </Orders>
</OrderList>

所以 File1.xml 应该是

<OrderList>
<Source>xml</Source>
<Organisation>org</Organisation>
<CreationDate>12/14/2015</CreationDate>
<Orders>
 <Order>
    <Name> Mobile </Name>
    <Price> 50.00</Price>
    <Quantity> 1 </Quantity>
 </Order>
 </Orders>
 </OrderList>

文件2.xml

<OrderList>
<Source>xml</Source>
<Organisation>org</Organisation>
<CreationDate>12/14/2015</CreationDate>
<Orders>
 <Order>
    <Name> Accessories </Name>
    <Price> 50.00</Price>
    <Quantity> 5 </Quantity>
 </Order>
 </Orders>
 </OrderList>

stackoverflow 中的先前问题解释了将标签拆分为 xml 文件,但我也想保留基本文件中的一些值。有人可以帮忙解决一下 Linq 和 XElement 的问题吗?

【问题讨论】:

    标签: c# xml linq


    【解决方案1】:

    如果您想将Orders 拆分为两个OrderList,您可以尝试这样的操作,您不需要创建相同的节点,它将从ordersXML 复制,新的Orders将被创建

    XElement ordersXML = XElement.Parse(XML_ORDERS);        
    var ordersElement = ordersXML.Element("Orders");
    var orders = ordersElement.Elements("Order");
    var newOrdersList = orders.Select(x => new XStreamingElement("OrderList", ordersXML.Elements().Where(e => e.Name!="Orders"), new XElement("Orders",x)));
    

    请看我的.NET Fiddle

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多