Compartilhar via


insertBefore Method

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Insere um nó filho para a esquerda do nó especificado ou no final de lista.

Sintaxe de script

var objXMLDOMNode = oXMLDOMNode.insertBefore(newChild, refChild);

Comentários

Parâmetros de script

  • newChild
    Objeto. Endereço do novo nó a ser inserido.
  • refChild
    Variant. Endereço do nó de referência; newChild é inserida à esquerda de refChild. Se nulo, newChild é inserido no final da lista a filho.

Valor Return script

Objeto. Em caso de sucesso, retorna o nó filho que foi inserido.

C/sintaxe C++

HRESULT insertBefore(
  IXMLDOMNode* newChild,
  VARIANT refChild,
  IXMLDOMNode** outNewChild
);

Comentários

C/parâmetros C++

  • newChild
    [no] Endereço do novo nó a ser inserido.
  • refChild
    [no] Endereço do nó de referência; newChild é inserida à esquerda de refChild. Se nulo, newChild é inserido no final da lista a filho.
  • outNewChild
    [out, retval] Em caso de sucesso, o nó filho que foi inserido. Se NULL, nenhum objeto é criado.

C/valores Return C++

  • S_OK
    Valor retornado se bem-sucedido.
  • E_INVALIDARG
    Valor retornado se newChild é nulo.
  • E_FAIL
    Valor retornado se ocorrerá um erro.

Requisitos

Header msxml2.h, msxml2.idl
Library uuid.lib
Windows Embedded CE Windows CE .NET 4.0 and later

Comentários Gerais

Esta operação depende de como o valor da NodeType propriedade.

NODE_ATTRIBUTE

Esta operação depende de como o valor da newChild parâmetro.

Valor Descrição

NODE_ATTRIBUTE, NODE_CDATA_SECTION, NODE_COMMENT, NODE_DOCUMENT, NODE_DOCUMENT_TYPE, NODE_ELEMENT, NODE_ENTITY, NODE_NOTATION, NODE_PROCESSING_INSTRUCTION

Retorna um erro. Esses tipos nó não podem ser filhos de um atributo.

NODE_DOCUMENT_FRAGMENT

Insere os filhos do (fragmento de documentonewChild) e retorna newChild.

NODE_ENTITY_REFERENCE, NODE_TEXT

Insere newChild e retorna newChild.

NODE_CDATA_SECTION, NODE_COMMENT, NODE_ENTITY, NODE_NOTATION, NODE_PROCESSING_INSTRUCTION, NODE_TEXT

Retorna um erro. Esses tipos nó ou não podem ter filhos ou seus filhos são somente leitura.

NODE_DOCUMENT

Esta operação depende de como o valor da newChild parâmetro.

Valor Descrição

NODE_ATTRIBUTE, NODE_CDATA_SECTION, NODE_DOCUMENT, NODE_ENTITY, NODE_ENTITY_REFERENCE, NODE_NOTATION, NODE_TEXT

Retorna um erro. Esses nós não são válido como filhos do nó documento.

NODE_COMMENT, NODE_PROCESSING_INSTRUCTION

Insere newChild e retorna newChild.

NODE_ELEMENT

Insere newChild e retorna newChild. Por definição, um documento XML (o nó de documento) pode ter apenas um único filho. Portanto, um erro será retornado se o nó de documento já tem um filho.

NODE_DOCUMENT_FRAGMENT

Insere os filhos do fragmento de documento (no newChild) e retorna newChild. As operações de inserção são assunto as regras para nós filho e pode falhar se o filhos de fragmento documento representam tipos nó que não podem ser inseridos.

NODE_DOCUMENT_TYPE

Retorna um erro. Tipo de documento é somente leitura.

NODE_DOCUMENT_FRAGMENT

Esta operação depende de como o valor da newChild parâmetro.

Valor Descrição

NODE_ATTRIBUTE, NODE_DOCUMENT, NODE_DOCUMENT_TYPE

Retorna um erro. Esses tipos nós não são válido como filhos do fragmento de documento.

NODE_CDATA_SECTION, NODE_COMMENT, NODE_ELEMENT, NODE_ENTITY_REFERENCE, NODE_PROCESSING_INSTRUCTION, NODE_TEXT

Insere newChild e retorna newChild.

NODE_DOCUMENT_FRAGMENT

Insere os filhos do (fragmento de documentonewChild) e retorna newChild.

NODE_ENTITY, NODE_NOTATION

Retorna um erro. Entidades e notações são somente leitura e não podem ser inseridas em um documento.

NODE_ELEMENT

Esta operação depende de como o valor da newChild parâmetro.

Valor Descrição

NODE_CDATA_SECTION, NODE_COMMENT, NODE_ELEMENT, NODE_ENTITY_REFERENCE, NODE_TEXT, NODE_PROCESSING_INSTRUCTION

Insere newChild e retorna newChild.

NODE_ATTRIBUTE, NODE_DOCUMENT, NODE_DOCUMENT_TYPE, NODE_ENTITY, NODE_NOTATION

Retorna um erro. Esses tipos nó não podem ser filhos de um nó elemento.

NODE_DOCUMENT_FRAGMENT

Insere os filhos do (fragmento de documentonewChild) e retorna newChild.

NODE_ENTITY_REFERENCE

Retorna um erro. Embora os nós filho de uma referência de entidade sejam a entidade expandida, os filhos não podem ser modificados.

O nó fornecido no refChild Deve ser um nó filho deste nó ou nulo. O newChild é inserida antes refChild (como o irmão à esquerda) na lista a filho. Se refChild é nulo, newChild é inserido no final da lista a filho. Se refChild não é um filho neste nó, um erro é retornado.

Se newChild é um nó do tipo DOCUMENT_FRAGMENT, todos os seus filhos são inseridos a mesma ordem, antes, refChild. Se newChild é já na árvore, ele é primeiro removido.

Esses parâmetros podem representar nós os documentos mesmos ou diferentes. Quando no mesmo documento, o reter nós seus tipos de atributos e dados usar como padrão. Quando esses parâmetros representam nós em documentos diferentes, os nós ou perder ou alterar seus atributos usar como padrão, dependendo se documento deste nó tem uma definição tipo documento (DTD Document Type DEFINITION) ou outra esquema. As tentativas implementação Microsoft para mesclar corretamente os DTDs diferentes.

Se a pasta newChild o DTD ou esquema do nó difere o original documento, os nós serão tratados com as definições no DTD novo, incluindo os tipos de atributos e dados usar como padrão. Se não houver nenhum DTD, o nós manter seus dados tipos por pegar uma definição instância (atributos perdem seus tipos dados), e atributos usar como padrão são perdidos. Observe também que recortando e colando entre documentos com dois diferentes DTDs podem resultar em um inválido documento que pode falham ao analisar após sendo salvo.

Quando os elementos são adicionados como filhos a outros elementos, eles apresentar seus próprios escopo espaço para nome. Ou seja, se o elemento for de um espaço para nome usar como padrão, o usar como padrão tem início escopo com o elemento que está sendo adicionado.

Se um referência de entidade está sendo adicionado como um filho a um elemento ou fragmento documento, a declaração de espaço para nome do referência de entidade será adicionada para o elemento que contém. De maneira semelhante, se o referência de entidade está sendo adicionado a um atributo, o espaço para nome e o prefixo de referência de entidade serão adicionadas para o elemento que contém o atributo.

Se houver um estar em conflito com entre prefixos no elemento contendo os prefixos que está sendo adicionados, o insertBefore método operação falha e retornará um erro. De exemplo, um estar em conflito com ocorre quando um novo atributo referir-se a um espaço para nome diferente é adicionado a um elemento com o espaço para nome, como no seguinte.

xmlns:myns="URN1"

O erro pode resultar do novo atributo, onde "myns" Refere-se a um outro espaço para nome, "URN2 " Como seria resultado de uma chamar para createNode Method ("atributo", "myns:myName", "URN2").

myns:myname="myattributevalue"

Namespace estar em conflito com erros ocorrer somente quando atributos configuração. Elementos filho inserido não causar um estar em conflito com de espaço para nome.

Ao adicionar um fragmento documento, o elemento contendo adiciona todos os espaços para nome e prefixos de fragmento de documento. Se isso causar um estar em conflito com com o elemento que contém, insertBefore Retorna um erro.

Este método se aplica ao seguinte objetos e interfaces:

IXMLDOMAttribute, IXMLDOMCDATASection, IXMLDOMCharacterData, IXMLDOMComment, DOMDocument, IXMLDOMDocumentFragment, IXMLDOMDocumentType, IXMLDOMElement, IXMLDOMEntity, IXMLDOMEntityReference, IXMLDOMNode, IXMLDOMNotation, IXMLDOMProcessingInstruction, IXMLDOMText, e IXTLRuntime.

See Also

Concepts

nodeType Property

Other Resources