私が持っているを削除するXMLの例名タグを使用してXMLノード値を比較して、タグ
<order>
<orderItem>
<OrderId>Ex1</OrderId>
<amount>100</amount>
</orderItem>
<orderItem>
<OrderId>Ex2</OrderId>
<amount>150</amount>
</orderItem>
<orderItem>
<OrderId>Ex1</OrderId>
<amount>250</amount>
</orderItem>
</order>
受注コードタグの値は、その後額タグを追加して、新しく追加されたタグを削除し、別の受注コードタグの値に等しい場合。
<order>
<orderItem>
<OrderId>Ex1</OrderId>
<amount>350</amount>
</orderItem>
<orderItem>
<OrderId>Ex2</OrderId>
<amount>150</amount>
</orderItem>
</order>
の下に受注コード値を変更する必要があるように私が必要とする結果出力はする必要があります。
string filename = "File Location";
var doc = XDocument.Load(filename);
var results = doc.Descendants("order");
var orderItemcount = results.Descendants("orderItem").Count();
私は次に何をするべきか分かりません。
ありがとうございました。
UPDATE:OrderIdでは同じである場合、一致するタグにそのOrderItemのタグを追加
<order>
<orderItem>
<Orders>
<OrderId>Ex1</OrderId>
<amount>100</amount>
</Orders>
</orderItem>
<orderItem>
<Orders>
<OrderId>Ex2</OrderId>
<amount>150</amount>
</Orders>
</orderItem>
<orderItem>
<Orders>
<OrderId>Ex1</OrderId>
<amount>250</amount>
</Orders>
</orderItem>
</order>
以下のように
私の新しいXML。 私はそこにいくつかの手順を実行している
<order>
<orderItem>
<Orders>
<OrderId>Ex1</OrderId>
<amount>100</amount>
</Orders>
<Orders>
<OrderId>Ex1</OrderId>
<amount>250</amount>
</orderItem>
<orderItem>
<Orders>
<OrderId>Ex2</OrderId>
<amount>150</amount>
<Orders>
</orderItem>
</order>
以下のアップデート回答
var groups = doc.Descendants("order").Descendants("orderItem").Descendants("Orders")
.GroupBy(x => (string)x.Element("OrderId"))
.ToList();
XElement newXml = new XElement("order");
foreach (var group in groups)
{
newXml.Add(new XElement("OrderList", new object[] {
// new XAttribute("OrderId", group.Key), // If you Need Key for Attribute add this.
group
}));
}
は、単にグループあなたの 'によってorderItems' 'OrderId'と' amount'を合計します –