0

C#2.0 の Xml ファイルからいくつかの XmlElements を削除しようとしています。XmlNode.Remove()メソッドで正常に削除できます。しかし、 にはRemoveメソッドがありませんXmlElement

私はグーグルでこれを見つけました。

要素はノードの一種です。実際、.NET Framework の XmlNode と XmlElement のメンバーを見ると、それらが非常に似ていることがわかりますが、XmlElement にはさらに多くの機能があります。XmlNode を継承し、さらにカスタマイズされています。これは、要素がより特殊化されているためです。ノードは、スコープがより一般的です。ドキュメントはノード、処理命令はノードなどです。要素が異なります。要素の XmlNodeType プロパティを見ると、それが Element であることがわかります。これは、見つけた多くの種類のノードの 1 つです。

要素がノードのタイプである場合、なぜ削除コマンドを使用できないのですか。ではどうやって?

XmlDocument doc_AlarmSettingUp = new XmlDocument();
doc_AlarmSettingUp.Load(xmlFile_AlarmSettingUp);
XmlNode rootDest = doc_AlarmSettingUp.SelectSingleNode("/Equipment/AlarmSettingUp/EnabledALIDs");
foreach (XmlElement el_AlarmSettingUp in doc_AlarmSettingUp.SelectNodes("/Equipment/AlarmSettingUp/EnabledALIDs/ALID"))
{
    XmlElement outEl;
    if (lookup.TryGetValue(el_AlarmSettingUp.GetAttribute("alid"), out outEl))
    {
        // exists; element now in "other"
        // Console.WriteLine("exists");
    }
    else
    {
        // doesn't exist
        Console.WriteLine("doesn't exist");
        // Then How can I remove element with an element method? Thanks.
    }
}
4

3 に答える 3

3

次のコードはどのコードでも機能するはずXmlElementです:

if (outEl.ParentNode != null) outEl.ParentNode.RemoveChild(outEl);
于 2010-12-06T08:41:13.207 に答える
1

上記のコードで何をしようとしていますか?私が見る限り、それは質問とは関係ありません。

XmlElement(XmlNode)でRemoveを呼び出す場合の問題は何ですか?

于 2010-12-06T08:42:35.673 に答える
1

私が見る限りXmlNode、方法もありませんRemove()。メソッドがRemoveChild(XmlNode)あり、そうXmlElementです。親要素を使用RemoveChildして子要素を削除する必要があります。

于 2010-12-06T08:42:47.310 に答える