는 다음 코드Linq to XML infanticide - 손자를 대신하여 자녀를 대체 할 수있는 간편한 방법이 있습니까?
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
var family = XDocument.Parse("<p><c><g/></c></p>");
var usurper = family.Root.Descendants("g");
family.Root.Element("c").Remove();
family.Root.Add(usurper);
Console.WriteLine(family.ToString());
Console.ReadKey();
}
}
내가 얻을 출력은 @"<p />"
하지만 난이 @"<p><g/></p>"
을 부탁을 고려하십시오. 왜 그런 일이 벌어지는 지 알 수 있습니다. 정의가 있지만, 필요한 결과가 아닙니다.
제가
var usurper = family.Root.Descendants("g");
family.Root.Add(usurper);
family.Root.Element("c").Remove();
에 라인들의 순서를 변경하는 경우 원형 관계 설정 및 제거는 eventualy OutOfMemoryException시킨다.
이 작업을 수행하는 간단하고 편리한 방법이 있습니까?
편집
실제로 구현 된 수정
var usurper = family.Root.Descendants("g").Single();
family.Root.Element("c").Remove();
family.Root.Add(usurper);
변명 내 홍조이었다.
제목만으로 투표 할 가치가 있습니다! –