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()
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.
示例
在下面的示例中, pages price book contosoBooks.xml 使用方法返回的对象在文件中第一个元素的子元素之前插入一个新元素 XmlWriter InsertBefore 。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.
在调用对象的方法之前,不会插入新的同级节点 Close XmlWriter 。The new sibling node is not inserted until the Close method of the XmlWriter object is called.
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(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仅当位于 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(XmlReader)
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.
例外
位置 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.
示例
在下面的示例中, pages price book contosoBooks.xml 使用指定的对象在文件中第一个元素的子元素之前插入一个新的元素 XmlReader 。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. http://www.contoso.com/books指定命名空间,以便使用与 XML 文档相同的命名空间插入新的同级元素。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.
示例
在下面的示例中, pages price 使用指定的对象中包含的节点,在文件中第一个元素的子元素之前插入一个新元素 book contosoBooks.xml XPathNavigator 。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. http://www.contoso.com/books指定命名空间,以便使用与 XML 文档相同的命名空间插入新的同级元素。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.