XPathNavigator.InsertElementBefore(String, String, String, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un nuevo elemento relacionado antes del nodo actual mediante el prefijo del espacio de nombres, el nombre local y el URI del espacio de nombres especificados, con el valor especificado.
public:
virtual void InsertElementBefore(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void InsertElementBefore(string prefix, string localName, string namespaceURI, string value);
abstract member InsertElementBefore : string * string * string * string -> unit
override this.InsertElementBefore : string * string * string * string -> unit
Public Overridable Sub InsertElementBefore (prefix As String, localName As String, namespaceURI As String, value As String)
Parámetros
- prefix
- String
Prefijo de espacio de nombres del nuevo elemento secundario (si existe).
- localName
- String
Nombre local del nuevo elemento secundario (si existe).
- namespaceURI
- String
URI del espacio de nombres del nuevo elemento secundario (si existe).
Empty y null son equivalentes.
- value
- String
Valor del nuevo elemento secundario. Si Empty se pasa o null , se crea un elemento vacío.
Excepciones
La posición de XPathNavigator no permite insertar un nuevo nodo relacionado antes del nodo actual.
XPathNavigator no admite la edición.
Ejemplos
En el ejemplo siguiente, se inserta un nuevo elemento pages antes del elemento price secundario del primer elemento book en el archivo contosoBooks.xml.
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.InsertElementBefore(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100");
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.InsertElementBefore(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100")
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
En el ejemplo se toma el contosoBooks.xml archivo como entrada.
<?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>
Comentarios
Los valores de prefijo y URI del espacio de nombres se pueden obtener mediante el LookupPrefix método o LookupNamespace . Por ejemplo, la sintaxis siguiente inserta un elemento relacionado mediante el espacio de nombres xmlns:bk="http://www.contoso.com/books"en el ámbito :
navigator.InsertElementBefore(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)
Esto crea el nuevo elemento relacionado <bk:pages/> .
A continuación se muestran notas importantes que se deben tener en cuenta al usar el InsertElementBefore método .
Si el prefijo de espacio de nombres especificado es
nullo String.Empty, el prefijo para el URI de espacio de nombres del nuevo elemento se obtiene de los espacios de nombres actuales en el ámbito. Si no hay ningún prefijo de espacio de nombres asignado al URI de espacio de nombres especificado en el ámbito actual, se genera automáticamente un prefijo de espacio de nombres.El InsertElementBefore método solo es válido cuando XPathNavigator se coloca en un elemento, texto, instrucción de procesamiento o nodo de comentario.
El InsertElementBefore método no afecta a la posición de .XPathNavigator