XElementからを削除する必要がありXDocumentます。
問題は.Remove()、 myXDocumentが と同じではないため、 をそのまま使用できないことXElementです。
非常に重要な事実はパフォーマンスです。
シナリオ: があり、XDocument docSourceこれを にコピーしXDocument docます。のノードを選択し、docSourceこのノードを で削除したいと考えていdocます。
これまでのところ、この回避策を使用しています (同じ親名を取得した場合、間違ったノードも削除される可能性がありますが、これは今のところ問題ではありません):
private static XNode actualNode;
private static void RemoveNode(XDocument doc)
{
doc.Root.Descendants(((XElement)actualNode).Name.LocalName)
.Where(e => actualNode.Parent.Name.LocalName.Equals(e.Parent.Name.LocalName))
.Remove();
}
これを行うより良い方法はありますか?そして特により速い方法は?私の XDocument には 1000 行ほどあります。