Modificando nós, conteúdo e valores em um documento XML
Há muitas maneiras de modificar os nós e o conteúdo de um documento. Pode:
Altere o valor dos nós usando a Value propriedade.
Modifique um conjunto inteiro de nós substituindo os nós por novos nós. Isso é feito usando a InnerXml propriedade.
Substitua nós existentes por novos nós usando o RemoveChild método.
Adicione caracteres adicionais aos nós que herdam da classe usando os XmlCharacterDataAppendDatamétodos , InsertDataou ReplaceData .
Modifique o conteúdo removendo um intervalo de caracteres usando o DeleteData método em tipos de nó que herdam do XmlCharacterData.
Uma técnica simples para alterar o valor de um nó é usar node.Value = "new value";
o . A tabela a seguir lista os tipos de nó em que essa única linha de código funciona e exatamente quais dados para esse tipo de nó são alterados.
Tipo de nó | Dados alterados |
---|---|
Atributo | O valor do atributo. |
CDATASection | O conteúdo do CDATASection. |
Comentário | O conteúdo do comentário. |
Instruções de processamento | O conteúdo, excluindo o alvo. |
Texto | O conteúdo do texto. |
XmlDeclaration | O conteúdo da declaração, excluindo o e ?> markup<?xml . |
Whitespace | O valor do espaço em branco. Você pode definir o valor como um dos quatro caracteres de espaço em branco XML reconhecidos: espaço, tabulação, CR ou LF. |
Espaço branco significativo | O valor do espaço em branco significativo. Você pode definir o valor como um dos quatro caracteres de espaço em branco XML reconhecidos: espaço, tabulação, CR ou LF. |
Qualquer tipo de nó não listado na tabela não é um tipo de nó válido para definir um valor. Definir um valor em qualquer outro tipo de nó gera um InvalidOperationExceptionarquivo .
A InnerXml propriedade altera a marcação dos nós filho para o nó atual. A configuração dessa propriedade substitui os nós filho pelo conteúdo analisado da cadeia de caracteres fornecida. A análise é feita no contexto de namespace atual. Além disso, InnerXml remove declarações de namespace redundantes. Como resultado, várias operações de recortar e colar não aumentam o tamanho do documento com declarações de namespace redundantes. Para obter um exemplo de código mostrando o efeito de namespaces na InnerXml operação, consulte a InnerXml propriedade.
Ao usar os ReplaceData métodos and RemoveChild , os métodos retornam o nó substituído ou removido. Esse nó pode ser reinserido em outro lugar no DOM (Document Object Model) XML. O ReplaceData método faz duas verificações de validação no nó que está sendo inserido no documento. A primeira verificação garante que o nó está se tornando filho de um nó que pode ter nós filhos de seu tipo. A segunda verificação garante que o nó que está sendo inserido não é um ancestral do nó do qual está se tornando um filho. Violar qualquer uma dessas condições lança um InvalidOperationException.
É válido adicionar ou remover um filho somente leitura de um nó que pode ser editado. No entanto, as tentativas de modificar o próprio nó somente leitura lançam um InvalidOperationExceptionarquivo . Um exemplo disso é modificar os filhos de um XmlEntityReference nó. As crianças são somente leitura e não podem ser modificadas. Qualquer tentativa de modificá-los lança um InvalidOperationExceptionarquivo .