XPathNavigator.ReplaceSelf 메서드

정의

현재 노드를 지정된 콘텐츠로 바꿉니다.

오버로드

ReplaceSelf(XmlReader)

현재 노드를 지정된 XmlReader 개체의 콘텐츠로 바꿉니다.

ReplaceSelf(XPathNavigator)

현재 노드를 지정된 XPathNavigator 개체의 콘텐츠로 바꿉니다.

ReplaceSelf(String)

현재 노드를 지정된 문자열의 콘텐츠로 바꿉니다.

ReplaceSelf(XmlReader)

현재 노드를 지정된 XmlReader 개체의 콘텐츠로 바꿉니다.

public:
 virtual void ReplaceSelf(System::Xml::XmlReader ^ newNode);
public virtual void ReplaceSelf (System.Xml.XmlReader newNode);
abstract member ReplaceSelf : System.Xml.XmlReader -> unit
override this.ReplaceSelf : System.Xml.XmlReader -> unit
Public Overridable Sub ReplaceSelf (newNode As XmlReader)

매개 변수

newNode
XmlReader

새 노드에 대한 XML 데이터에 있는 XmlReader 개체입니다.

예외

XmlReader 개체가 오류 상태이거나 닫혀 있습니다.

XmlReader 개체 매개 변수가 null입니다.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.

XPathNavigator에서는 편집을 지원하지 않습니다.

XmlReader 개체 매개 변수의 XML 콘텐츠 형식이 잘못되었습니다.

예제

다음 예제에서는 파일의 pricecontosoBooks.xml 요소가 새 pages 요소로 대체됩니다.

XmlDocument^ document = gcnew 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");

XmlReader^ pages = XmlReader::Create(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator->ReplaceSelf(pages);

Console::WriteLine("Position after delete: {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
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");

XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator.ReplaceSelf(pages);

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")

Dim pages As XmlReader = XmlReader.Create(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))

navigator.ReplaceSelf(pages)

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 메서드가 완료될 때 새 노드에 배치되고 를 ReplaceSelf 반환합니다 true. XPathNavigator XML 입력 Empty 이 있는 경우 메서드가 ReplaceSelf 완료된 후 가 새 노드에 배치되지 않습니다. 이 경우 XPathNavigator 는 대체된 노드에 대한 다음 형제 노드가 없고 가 를 반환하는 경우 다음 형제 노드 또는 부모 노드 ReplaceSelf 에 배치됩니다false.

  • 메서드는 ReplaceSelf 가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치된 경우에만 XPathNavigator 유효합니다.

  • XML 데이터 문자열이 예외가 throw되는 것보다 잘 구성되지 않은 경우 이 메서드의 결과는 현재 노드에서 를 호출하는 DeleteSelf 것과 같습니다.

  • XML 문자열에 여러 노드가 포함된 경우 모든 노드가 추가되고 XPathNavigator 는 일련의 노드에서 첫 번째 노드에 배치됩니다.

  • 메서드는 ReplaceSelf 메서드와 DeleteSelf 동일하지 않습니다.

적용 대상

ReplaceSelf(XPathNavigator)

현재 노드를 지정된 XPathNavigator 개체의 콘텐츠로 바꿉니다.

public:
 virtual void ReplaceSelf(System::Xml::XPath::XPathNavigator ^ newNode);
public virtual void ReplaceSelf (System.Xml.XPath.XPathNavigator newNode);
abstract member ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
override this.ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub ReplaceSelf (newNode As XPathNavigator)

매개 변수

newNode
XPathNavigator

새 노드에 있는 XPathNavigator 개체입니다.

예외

XPathNavigator 개체 매개 변수가 null입니다.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.

XPathNavigator에서는 편집을 지원하지 않습니다.

XPathNavigator 개체 매개 변수의 XML 콘텐츠 형식이 잘못되었습니다.

예제

다음 예제에서는 파일의 pricecontosoBooks.xml 요소가 새 pages 요소로 대체됩니다.

XmlDocument^ document = gcnew 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");

XmlDocument^ childNodes = gcnew XmlDocument();
childNodes->Load(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator^ childNodesNavigator = childNodes->CreateNavigator();

navigator->ReplaceSelf(childNodesNavigator);

Console::WriteLine("Position after delete: {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
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");

XmlDocument childNodes = new XmlDocument();
childNodes.Load(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator childNodesNavigator = childNodes.CreateNavigator();

navigator.ReplaceSelf(childNodesNavigator);

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")

Dim childNodes As XmlDocument = New XmlDocument()
childNodes.Load(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
Dim childNodesNavigator As XPathNavigator = childNodes.CreateNavigator()

navigator.ReplaceSelf(childNodesNavigator)

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 메서드가 완료될 때 새 노드에 배치되고 를 ReplaceSelf 반환합니다 true. XPathNavigator XML 입력 Empty 이 있는 경우 메서드가 ReplaceSelf 완료된 후 가 새 노드에 배치되지 않습니다. 이 경우 XPathNavigator 는 대체된 노드에 대한 다음 형제 노드가 없고 가 를 반환하는 경우 다음 형제 노드 또는 부모 노드 ReplaceSelf 에 배치됩니다false.

  • 메서드는 ReplaceSelf 가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치된 경우에만 XPathNavigator 유효합니다.

  • XML 데이터 문자열이 예외가 throw되는 것보다 잘 구성되지 않은 경우 이 메서드의 결과는 현재 노드에서 를 호출하는 DeleteSelf 것과 같습니다.

  • XML 문자열에 여러 노드가 포함된 경우 모든 노드가 추가되고 XPathNavigator 는 일련의 노드에서 첫 번째 노드에 배치됩니다.

  • 메서드는 ReplaceSelf 메서드와 DeleteSelf 동일하지 않습니다.

적용 대상

ReplaceSelf(String)

현재 노드를 지정된 문자열의 콘텐츠로 바꿉니다.

public:
 virtual void ReplaceSelf(System::String ^ newNode);
public virtual void ReplaceSelf (string newNode);
abstract member ReplaceSelf : string -> unit
override this.ReplaceSelf : string -> unit
Public Overridable Sub ReplaceSelf (newNode As String)

매개 변수

newNode
String

새 노드에 대한 XML 데이터 문자열입니다.

예외

XML 문자열 매개 변수는 null입니다.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.

XPathNavigator에서는 편집을 지원하지 않습니다.

XML 문자열 매개 변수의 형식이 잘못되었습니다.

예제

다음 예제에서는 파일의 pricecontosoBooks.xml 요소가 새 pages 요소로 대체됩니다.

XmlDocument^ document = gcnew 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->ReplaceSelf("<pages>100</pages>");

Console::WriteLine("Position after delete: {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
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.ReplaceSelf("<pages>100</pages>");

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.ReplaceSelf("<pages>100</pages>")

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 메서드가 완료될 때 새 노드에 배치되고 를 ReplaceSelf 반환합니다 true. XPathNavigator XML 입력 Empty 이 있는 경우 메서드가 ReplaceSelf 완료된 후 가 새 노드에 배치되지 않습니다. 이 경우 XPathNavigator 는 대체된 노드에 대한 다음 형제 노드가 없고 가 를 반환하는 경우 다음 형제 노드 또는 부모 노드 ReplaceSelf 에 배치됩니다false.

  • 메서드는 ReplaceSelf 가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치된 경우에만 XPathNavigator 유효합니다.

  • XML 데이터 문자열이 예외가 throw되는 것보다 잘 구성되지 않은 경우 이 메서드의 결과는 현재 노드에서 를 호출하는 DeleteSelf 것과 같습니다.

  • XML 문자열에 여러 노드가 포함된 경우 모든 노드가 추가되고 XPathNavigator 는 일련의 노드에서 첫 번째 노드에 배치됩니다.

  • 메서드는 ReplaceSelf 메서드와 DeleteSelf 동일하지 않습니다.

적용 대상