XPathNavigator.InsertBefore 메서드

정의

현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node.

오버로드

InsertBefore()

현재 선택된 노드 앞에 새 형제 노드를 만드는 데 사용되는 XmlWriter 개체를 반환합니다.Returns an XmlWriter object used to create a new sibling node before the currently selected node.

InsertBefore(String)

지정된 XML 문자열을 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the XML string specified.

InsertBefore(XmlReader)

지정된 XmlReader 개체의 XML 콘텐츠를 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the XML contents of the XmlReader object specified.

InsertBefore(XPathNavigator)

지정된 XPathNavigator의 노드를 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the nodes in the XPathNavigator specified.

InsertBefore()

현재 선택된 노드 앞에 새 형제 노드를 만드는 데 사용되는 XmlWriter 개체를 반환합니다.Returns an XmlWriter object used to create a new sibling node before the currently selected node.

public:
 virtual System::Xml::XmlWriter ^ InsertBefore();
public virtual System.Xml.XmlWriter InsertBefore ();
abstract member InsertBefore : unit -> System.Xml.XmlWriter
override this.InsertBefore : unit -> System.Xml.XmlWriter
Public Overridable Function InsertBefore () As XmlWriter

반환

현재 선택된 노드 앞에 새 형제 노드를 만드는 데 사용되는 XmlWriter 개체입니다.An XmlWriter object used to create a new sibling node before the currently selected node.

예외

XPathNavigator 위치에서는 현재 노드 앞에 새로운 형제 노드를 삽입할 수 없습니다.The position of the XPathNavigator does not allow a new sibling node to be inserted before the current node.

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

예제

다음 예제에서는 XmlWriter 메서드에서 반환 된 InsertBefore 개체를 사용 하 여 contosoBooks.xml 파일에 있는 첫 번째 book 요소의 price 자식 요소 앞에 새 pages 요소를 삽입 합니다.In the following example a new pages element is inserted before the price child element of the first book element in the contosoBooks.xml file using the XmlWriter object returned by the InsertBefore method.

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

XmlWriter^ pages = navigator->InsertBefore();
pages->WriteElementString("pages", "100");
pages->Close();

navigator->MoveToParent();
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");

XmlWriter pages = navigator.InsertBefore();
pages.WriteElementString("pages", "100");
pages.Close();

navigator.MoveToParent();
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 XmlWriter = navigator.InsertBefore()
pages.WriteElementString("pages", "100")
pages.Close()

navigator.MoveToParent()
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>  
  

설명

다음은 InsertBefore 메서드를 사용할 때 고려해 야 할 중요 한 사항입니다.The following are important notes to consider when using the InsertBefore method.

InsertBefore(String)

지정된 XML 문자열을 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the XML string specified.

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

매개 변수

newSibling
String

새 형제 노드에 대한 XML 데이터 문자열입니다.The XML data string for the new sibling node.

예외

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

XPathNavigator 위치에서는 현재 노드 앞에 새로운 형제 노드를 삽입할 수 없습니다.The position of the XPathNavigator does not allow a new sibling node to be inserted before the current node.

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

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

예제

다음 예제에서는 pages 파일에서 첫 번째 price 요소의 book 자식 요소 앞에 새 contosoBooks.xml 요소를 삽입합니다.In the following example a new pages element is inserted before the price child element of the first book element in the contosoBooks.xml file.

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->InsertBefore("<pages>100</pages>");

navigator->MoveToParent();
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.InsertBefore("<pages>100</pages>");

navigator.MoveToParent();
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.InsertBefore("<pages>100</pages>")

navigator.MoveToParent()
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>  
  

설명

새 요소 노드를 만들려면 XML 문자열 매개 변수에 모든 XML 구문을 포함 합니다.To create a new element node, include all XML syntax in the XML string parameter. book 노드에 대 한 문자열을 InsertBefore("<book/>")합니다.The string for a new book node is InsertBefore("<book/>"). 현재 노드의 텍스트 노드 앞에 "book" 텍스트를 삽입 하는 문자열을 InsertBefore("book")합니다.The string for inserting the text "book" before the current node's text node is InsertBefore("book"). XML 문자열에 여러 노드가 포함 된 경우 모든 노드가 추가 됩니다.If the XML string contains multiple nodes, all nodes are added.

다음은 InsertBefore 메서드를 사용할 때 고려해 야 할 중요 한 사항입니다.The following are important notes to consider when using the InsertBefore method.

InsertBefore(XmlReader)

지정된 XmlReader 개체의 XML 콘텐츠를 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the XML contents of the XmlReader object specified.

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

매개 변수

newSibling
XmlReader

새 형제 노드에 대한 XML 데이터에 있는 XmlReader 개체입니다.An XmlReader object positioned on the XML data for the new sibling node.

예외

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

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

XPathNavigator 위치에서는 현재 노드 앞에 새로운 형제 노드를 삽입할 수 없습니다.The position of the XPathNavigator does not allow a new sibling node to be inserted before the current node.

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

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

예제

다음 예제에서는 지정 된 XmlReader 개체를 사용 하 여 contosoBooks.xml 파일에서 첫 번째 book 요소의 price 자식 요소 앞에 새 pages 요소가 삽입 됩니다.In the following example a new pages element is inserted before the price child element of the first book element in the contosoBooks.xml file using the XmlReader object specified. XML 문서와 동일한 네임 스페이스를 사용 하 여 새 형제 요소가 삽입 되도록 http://www.contoso.com/books 네임 스페이스가 지정 됩니다.The http://www.contoso.com/books namespace is specified so that the new sibling element is inserted using the same namespace as the XML document.

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->InsertBefore(pages);

navigator->MoveToParent();
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.InsertBefore(pages);

navigator.MoveToParent();
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.InsertBefore(pages)

navigator.MoveToParent()
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>  
  

설명

다음은 InsertBefore 메서드를 사용할 때 고려해 야 할 중요 한 사항입니다.The following are important notes to consider when using the InsertBefore method.

  • XmlReader 개체가 XML 노드 시퀀스 위에 배치 된 경우 시퀀스의 모든 노드가 추가 됩니다.If the XmlReader object is positioned over a sequence of XML nodes, all the nodes in the sequence are added.

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

  • InsertBefore 메서드는 XPathNavigator의 위치에 영향을 주지 않습니다.The InsertBefore method does not affect the position of the XPathNavigator.

InsertBefore(XPathNavigator)

지정된 XPathNavigator의 노드를 사용하여 현재 선택된 노드 앞에 새 형제 노드를 만듭니다.Creates a new sibling node before the currently selected node using the nodes in the XPathNavigator specified.

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

매개 변수

newSibling
XPathNavigator

새 형제 노드로 추가할 노드에 있는 XPathNavigator 개체입니다.An XPathNavigator object positioned on the node to add as the new sibling node.

예외

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

XPathNavigator 위치에서는 현재 노드 앞에 새로운 형제 노드를 삽입할 수 없습니다.The position of the XPathNavigator does not allow a new sibling node to be inserted before the current node.

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

예제

다음 예제에서는 지정 된 XPathNavigator 개체에 포함 된 노드를 사용 하 여 contosoBooks.xml 파일에 있는 첫 번째 book 요소의 price 자식 요소 앞에 새 pages 요소가 삽입 됩니다.In the following example a new pages element is inserted before the price child element of the first book element in the contosoBooks.xml file using the node contained in the XPathNavigator object specified. XML 문서와 동일한 네임 스페이스를 사용 하 여 새 형제 요소가 삽입 되도록 http://www.contoso.com/books 네임 스페이스가 지정 됩니다.The http://www.contoso.com/books namespace is specified so that the new sibling element is inserted using the same namespace as the XML document.

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->InsertBefore(childNodesNavigator);

navigator->MoveToParent();
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.InsertBefore(childNodesNavigator);

navigator.MoveToParent();
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.InsertBefore(childNodesNavigator)

navigator.MoveToParent()
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>  
  

설명

다음은 InsertBefore 메서드를 사용할 때 고려해 야 할 중요 한 사항입니다.The following are important notes to consider when using the InsertBefore method.

  • XPathNavigator 개체가 XML 노드 시퀀스 위에 배치 된 경우 시퀀스의 모든 노드가 추가 됩니다.If the XPathNavigator object is positioned over a sequence of XML nodes, all the nodes in the sequence are added.

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

  • InsertBefore 메서드는 XPathNavigator의 위치에 영향을 주지 않습니다.The InsertBefore method does not affect the position of the XPathNavigator.

적용 대상