Поделиться через


XPathNavigator.DeleteSelf Метод

Определение

Удаляет текущий узел и его дочерние узлы.

public:
 virtual void DeleteSelf();
public virtual void DeleteSelf();
abstract member DeleteSelf : unit -> unit
override this.DeleteSelf : unit -> unit
Public Overridable Sub DeleteSelf ()

Исключения

Он XPathNavigator размещается на узле, который не может быть удален, например корневой узел или узел пространства имен.

Не поддерживает редактирование XPathNavigator .

Примеры

В следующем примере price элемент первого book элемента contosoBooks.xml файла удаляется с помощью DeleteSelf метода. Позиция XPathNavigator объекта после price удаления элемента находится в родительском book элементе.

XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");
navigator.MoveToChild("price", "http://www.contoso.com/books");

navigator.DeleteSelf();

Console.WriteLine("Position after delete: {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")
navigator.MoveToChild("price", "http://www.contoso.com/books")

navigator.DeleteSelf()

Console.WriteLine("Position after delete: {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

Пример принимает contosoBooks.xml файл в качестве входных данных.

<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

Комментарии

  • Он XPathNavigator размещается на родительском узле удаленного узла при успешном удалении.

  • Если удаленный узел является текстовым узлом, который является содержимым простого типизированного элемента, элемент теряет сведения о типе. Это означает, что при расположении в элементе XmlTypeValueType и TypedValue свойствах имеются значения Stringnullи Empty соответственно.

  • Удаленные узлы по-прежнему доступны XPathNavigator для объектов, расположенных над ними перед удалением. Однако методы, пытающиеся уйти от удаленного подсеть, завершаются сбоем. Например, MoveToParentMoveToPrevious методы всегда завершаются сбоем при XPathNavigator расположении над самым удаленным узлом. Это связано с тем, что удаленный узел больше не подключен к XML-документу. Аналогичным образом MoveToNext метод всегда завершается ошибкой, если XPathNavigator он расположен на нижнем удаленном узле.

Применяется к