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 行ほどあります。