XPathNavigator.ReplaceSelf 메서드

정의

현재 노드를 지정된 콘텐츠로 바꿉니다.Replaces the current node with the content specified.

오버로드

ReplaceSelf(XmlReader)

현재 노드를 지정된 XmlReader 개체의 콘텐츠로 바꿉니다.Replaces the current node with the contents of the XmlReader object specified.

ReplaceSelf(XPathNavigator)

현재 노드를 지정된 XPathNavigator 개체의 콘텐츠로 바꿉니다.Replaces the current node with the contents of the XPathNavigator object specified.

ReplaceSelf(String)

현재 노드를 지정된 문자열의 콘텐츠로 바꿉니다.Replaces the current node with the content of the string specified.

ReplaceSelf(XmlReader)

현재 노드를 지정된 XmlReader 개체의 콘텐츠로 바꿉니다.Replaces the current node with the contents of the XmlReader object specified.

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 개체입니다.An XmlReader object positioned on the XML data for the new node.

예외

XmlReader 개체가 오류 상태이거나 닫혀 있습니다.The XmlReader object is in an error state or closed.

XmlReader 개체 매개 변수가 null입니다.The XmlReader object parameter is null.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.The XPathNavigator is not positioned on an element, text, processing instruction, or comment node.

XPathNavigator에서는 편집을 지원하지 않습니다.The XPathNavigator does not support editing.

XmlReader 개체 매개 변수의 XML 콘텐츠 형식이 잘못되었습니다.The XML contents of the XmlReader object parameter is not well-formed.

예제

다음 예제에서는 contosoBooks.xml 파일의 price 요소를 새 pages 요소로 바꿉니다.In the following example the price element in the contosoBooks.xml file is replaced by a new pages element.

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 파일을 입력으로 사용합니다.The example takes the contosoBooks.xml file as an input.

  
<?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>  
  

설명

XPathNavigatorReplaceSelf 메서드를 완료할 때 새 노드에 배치 되며 true를 반환 합니다.The XPathNavigator is positioned on the new node on completion of the ReplaceSelf method and returns true. XML 입력이 Empty 되는 경우 ReplaceSelf 메서드를 완료 한 후에 XPathNavigator 새 노드에 위치 하지 않습니다 .이 경우 대체 된 노드에 대 한 다음 형제 노드가 없고 ReplaceSelffalse를 반환 하는 경우 XPathNavigator는 다음 형제 노드 또는 부모 노드에 배치 됩니다.The XPathNavigator is not positioned on the new node after completion of the ReplaceSelf method when the XML input is Empty in which case the XPathNavigator is either positioned on the next sibling node or the parent node if there is no next sibling node to the replaced node and the ReplaceSelf returns false.

  • ReplaceSelf 메서드는 XPathNavigator 요소, 텍스트, 처리 명령 또는 주석 노드에 배치 된 경우에만 유효 합니다.The ReplaceSelf method is valid only when the XPathNavigator is positioned on an element, text, processing instruction, or comment node.

  • XML 데이터 문자열의 형식이 잘못 된 경우 예외가 throw 되 고이 메서드의 결과는 현재 노드에서 DeleteSelf를 호출 하는 것과 같습니다.If the XML data string is not well-formed than an exception is thrown and the result of this method is equivalent to calling DeleteSelf on the current node.

  • XML 문자열에 노드가 여러 개 있는 경우 모든 노드가 추가 되 고 XPathNavigator는 일련의 노드 내 첫 번째 노드에 배치 됩니다.If the XML string contains multiple nodes, all nodes are added and the XPathNavigator is positioned on the first node in the series of nodes.

  • ReplaceSelf 메서드는 DeleteSelf 메서드와 동일 하지 않습니다.The ReplaceSelf method is not equivalent to the DeleteSelf method.

ReplaceSelf(XPathNavigator)

현재 노드를 지정된 XPathNavigator 개체의 콘텐츠로 바꿉니다.Replaces the current node with the contents of the XPathNavigator object specified.

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 개체입니다.An XPathNavigator object positioned on the new node.

예외

XPathNavigator 개체 매개 변수가 null입니다.The XPathNavigator object parameter is null.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.The XPathNavigator is not positioned on an element, text, processing instruction, or comment node.

XPathNavigator에서는 편집을 지원하지 않습니다.The XPathNavigator does not support editing.

XPathNavigator 개체 매개 변수의 XML 콘텐츠 형식이 잘못되었습니다.The XML contents of the XPathNavigator object parameter is not well-formed.

예제

다음 예제에서는 contosoBooks.xml 파일의 price 요소를 새 pages 요소로 바꿉니다.In the following example the price element in the contosoBooks.xml file is replaced by a new pages element.

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 파일을 입력으로 사용합니다.The example takes the contosoBooks.xml file as an input.

  
<?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>  
  

설명

XPathNavigatorReplaceSelf 메서드를 완료할 때 새 노드에 배치 되며 true를 반환 합니다.The XPathNavigator is positioned on the new node on completion of the ReplaceSelf method and returns true. XML 입력이 Empty 되는 경우 ReplaceSelf 메서드를 완료 한 후에 XPathNavigator 새 노드에 위치 하지 않습니다 .이 경우 대체 된 노드에 대 한 다음 형제 노드가 없고 ReplaceSelffalse를 반환 하는 경우 XPathNavigator는 다음 형제 노드 또는 부모 노드에 배치 됩니다.The XPathNavigator is not positioned on the new node after completion of the ReplaceSelf method when the XML input is Empty in which case the XPathNavigator is either positioned on the next sibling node or the parent node if there is no next sibling node to the replaced node and the ReplaceSelf returns false.

  • ReplaceSelf 메서드는 XPathNavigator 요소, 텍스트, 처리 명령 또는 주석 노드에 배치 된 경우에만 유효 합니다.The ReplaceSelf method is valid only when the XPathNavigator is positioned on an element, text, processing instruction, or comment node.

  • XML 데이터 문자열의 형식이 잘못 된 경우 예외가 throw 되 고이 메서드의 결과는 현재 노드에서 DeleteSelf를 호출 하는 것과 같습니다.If the XML data string is not well-formed than an exception is thrown and the result of this method is equivalent to calling DeleteSelf on the current node.

  • XML 문자열에 노드가 여러 개 있는 경우 모든 노드가 추가 되 고 XPathNavigator는 일련의 노드 내 첫 번째 노드에 배치 됩니다.If the XML string contains multiple nodes, all nodes are added and the XPathNavigator is positioned on the first node in the series of nodes.

  • ReplaceSelf 메서드는 DeleteSelf 메서드와 동일 하지 않습니다.The ReplaceSelf method is not equivalent to the DeleteSelf method.

ReplaceSelf(String)

현재 노드를 지정된 문자열의 콘텐츠로 바꿉니다.Replaces the current node with the content of the string specified.

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 데이터 문자열입니다.The XML data string for the new node.

예외

XML 문자열 매개 변수는 null입니다.The XML string parameter is null.

XPathNavigator가 요소, 텍스트, 처리 명령 또는 주석 노드에 배치되지 않았습니다.The XPathNavigator is not positioned on an element, text, processing instruction, or comment node.

XPathNavigator에서는 편집을 지원하지 않습니다.The XPathNavigator does not support editing.

XML 문자열 매개 변수의 형식이 잘못되었습니다.The XML string parameter is not well-formed.

예제

다음 예제에서는 contosoBooks.xml 파일의 price 요소를 새 pages 요소로 바꿉니다.In the following example the price element in the contosoBooks.xml file is replaced by a new pages element.

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 파일을 입력으로 사용합니다.The example takes the contosoBooks.xml file as an input.

  
<?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>  
  

설명

XPathNavigatorReplaceSelf 메서드를 완료할 때 새 노드에 배치 되며 true를 반환 합니다.The XPathNavigator is positioned on the new node on completion of the ReplaceSelf method and returns true. XML 입력이 Empty 되는 경우 ReplaceSelf 메서드를 완료 한 후에 XPathNavigator 새 노드에 위치 하지 않습니다 .이 경우 대체 된 노드에 대 한 다음 형제 노드가 없고 ReplaceSelffalse를 반환 하는 경우 XPathNavigator는 다음 형제 노드 또는 부모 노드에 배치 됩니다.The XPathNavigator is not positioned on the new node after completion of the ReplaceSelf method when the XML input is Empty in which case the XPathNavigator is either positioned on the next sibling node or the parent node if there is no next sibling node to the replaced node and the ReplaceSelf returns false.

  • ReplaceSelf 메서드는 XPathNavigator 요소, 텍스트, 처리 명령 또는 주석 노드에 배치 된 경우에만 유효 합니다.The ReplaceSelf method is valid only when the XPathNavigator is positioned on an element, text, processing instruction, or comment node.

  • XML 데이터 문자열의 형식이 잘못 된 경우 예외가 throw 되 고이 메서드의 결과는 현재 노드에서 DeleteSelf를 호출 하는 것과 같습니다.If the XML data string is not well-formed than an exception is thrown and the result of this method is equivalent to calling DeleteSelf on the current node.

  • XML 문자열에 노드가 여러 개 있는 경우 모든 노드가 추가 되 고 XPathNavigator는 일련의 노드 내 첫 번째 노드에 배치 됩니다.If the XML string contains multiple nodes, all nodes are added and the XPathNavigator is positioned on the first node in the series of nodes.

  • ReplaceSelf 메서드는 DeleteSelf 메서드와 동일 하지 않습니다.The ReplaceSelf method is not equivalent to the DeleteSelf method.

적용 대상