insertBefore Method
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.