Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hay muchas maneras de modificar los nodos y el contenido de un documento. Ustedes pueden:
Cambie el valor de los nodos mediante la Value propiedad .
Modifique un conjunto completo de nodos reemplazando los nodos por nuevos nodos. Esto se hace mediante la InnerXml propiedad .
Reemplace los nodos existentes por nuevos nodos mediante el RemoveChild método .
Agregue caracteres adicionales a los nodos que heredan de la XmlCharacterData clase mediante los AppendDatamétodos , InsertDatao ReplaceData .
Modifique el contenido quitando un intervalo de caracteres mediante el DeleteData método en los tipos de nodo que heredan de XmlCharacterData.
Una técnica sencilla para cambiar el valor de un nodo es usar node.Value = "new value";
. En la tabla siguiente se enumeran los tipos de nodo en los que funciona esta sola línea de código y exactamente qué datos de ese tipo de nodo se cambian.
Tipo de nodo | Datos modificados |
---|---|
Atributo | Valor del atributo . |
CDATASection | El contenido de la sección CDATA. |
Comentario | Contenido del comentario. |
Instrucción de Procesamiento | El contenido, excepto el objetivo. |
Mensaje de texto | Contenido del texto. |
Declaración XML | Contenido de la declaración, excepto el etiquetado <?xml y ?> . |
Espacio en blanco | Valor del espacio en blanco. Puede establecer este valor en uno de los cuatro caracteres de espacio en blanco XML reconocidos: space, tab, CR o LF. |
SignificantWhitespace | Valor del espacio en blanco significativo. Puede establecer este valor en uno de los cuatro caracteres de espacio en blanco XML reconocidos: space, tab, CR o LF. |
Cualquier tipo de nodo que no aparezca en la tabla no es un tipo de nodo válido en el que establecer un valor. Al establecer un valor en cualquier otro tipo de nodo, se inicia una InvalidOperationException.
La InnerXml propiedad cambia el marcado de los nodos secundarios del nodo actual. Al establecer esta propiedad, se reemplazan los nodos secundarios por el contenido analizado de la cadena especificada. El análisis se realiza en el contexto del espacio de nombres actual. Además, InnerXml elimina las redundancias en las declaraciones de espacio de nombres. Como resultado, las numerosas operaciones de cortar y pegar no aumentan el tamaño de tu documento con declaraciones redundantes de espacio de nombres. Para obtener un ejemplo de código que muestre cómo afectan los namespaces a la operación InnerXml, consulte la propiedad InnerXml.
Al usar los ReplaceData métodos y RemoveChild , los métodos devuelven el nodo reemplazado o quitado. A continuación, este nodo se puede reinsertar en otro lugar del modelo de objetos de documento XML (DOM). El ReplaceData método realiza dos comprobaciones de validación en el nodo que se inserta en el documento. La primera comprobación garantiza que el nodo se está convirtiendo en un elemento secundario de un nodo que puede tener nodos secundarios de su tipo. La segunda comprobación garantiza que el nodo que se va a insertar no sea un antecesor del nodo en el que se convertirá en hijo. Si se incumplen cualquiera de estas condiciones, se inicia una InvalidOperationException.
Es válido agregar o quitar un nodo secundario de solo lectura de un nodo que se puede editar. Sin embargo, cualquier intento de modificar ese nodo de solo lectura inicia una InvalidOperationException. Pongamos como ejemplo la modificación de los nodos secundarios de un nodo XmlEntityReference. Los nodos secundarios son de solo lectura y no se pueden modificar. Cualquier intento de modificarlos inicia una InvalidOperationException.