XPathNavigator.PrependChildElement(String, String, String, String) 方法

定义

使用通过指定值指定的命名空间前缀、本地名称和命名空间 URI 在当前节点的子节点列表的开始处创建一个新的子元素。

public:
 virtual void PrependChildElement(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void PrependChildElement (string prefix, string localName, string namespaceURI, string value);
public virtual void PrependChildElement (string? prefix, string localName, string? namespaceURI, string? value);
abstract member PrependChildElement : string * string * string * string -> unit
override this.PrependChildElement : string * string * string * string -> unit
Public Overridable Sub PrependChildElement (prefix As String, localName As String, namespaceURI As String, value As String)

参数

prefix
String

新的子元素的命名空间前缀(如果有)。

localName
String

新的子元素的本地名称(如果有)。

namespaceURI
String

新的子元素的命名空间 URI(如果有)。 Emptynull 等效。

value
String

新的子元素的值。 如果传递 Emptynull,将创建一个空元素。

例外

放置 XPathNavigator 的当前节点不允许预置新的子节点。

示例

在以下示例中contosoBooks.xml,文件中第book一个元素的子元素列表的开头追加了一个新的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->PrependChildElement(navigator->Prefix, "pages", navigator->LookupNamespace(navigator->Prefix), "100");

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.PrependChildElement(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100");

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.PrependChildElement(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100")

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>  

注解

预先添加子节点会将新节点添加到当前节点的子节点列表的开头。 例如,当元素存在三个子节点时,前面附加的节点将成为第一个子节点。 如果不存在子节点,则会创建一个新的子节点。

可以使用 LookupPrefixLookupNamespace 方法获取命名空间前缀和 URI 值。 例如,以下语法通过使用范围内的命名空间 xmlns:bk="http://www.contoso.com/books"在子元素前面添加 :

navigator.PrependChildElement(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)  

这会创建新的子 <bk:pages/> 元素。

以下是使用 PrependChildElement 方法时要考虑的重要注意事项。

  • 如果指定的命名空间前缀为 nullString.Empty,则新元素的命名空间 URI 的前缀将从范围内的当前命名空间中获取。 如果没有分配给当前范围内的指定命名空间 URI 的命名空间前缀,则自动生成命名空间前缀。

  • PrependChildElement仅当 定位在元素节点上时, XPathNavigator 方法才有效。

  • 方法 PrependChildElement 不影响 的位置 XPathNavigator

适用于