Compartir a través de


Contenido válido de objetos XElement y XDocument

En este tema se describen los argumentos válidos que se pueden pasar a los constructores y los métodos que se usan para agregar contenido a elementos y documentos.

Contenido válido

Las consultas a menudo evalúan a IEnumerable<T> de XElement o a IEnumerable<T> de XAttribute.Se pueden pasar colecciones de objetos XElement o XAttribute al constructor XElement.Por lo tanto, resulta conveniente pasar los resultados de una consulta como contenido a los métodos y constructores que use para rellenar árboles XML.

Al agregar contenido simple, se pueden pasar varios tipos a este método.Entre los tipos válidos se incluyen los siguientes:

Al agregar contenido complejo, se pueden pasar varios tipos a este método:

Si un objeto implementa IEnumerable<T>, se enumera la colección del objeto y se agregan todos los elementos de la colección.Si la colección contiene objetos XNode o XAttribute, cada elemento de la colección se agrega por separado.Si la colección contiene texto (u objetos convertidos a texto), el texto de la colección se concatena y se agrega como un nodo de texto.

Si el contenido es null, no se agrega nada.Al pasar una colección, se permite que los elementos de la colección sean null.Un elemento null de la colección no tiene ningún efecto en el árbol.

Un atributo agregado debe tener un nombre único en el elemento contenedor.

Cuando se asocian objetos XNode o XAttribute, si el contenido nuevo no tiene un elemento primario, los objetos simplemente se adjuntan al árbol XML.Si el contenido nuevo ya tiene un elemento primario y forma parte de otro árbol XML, el nuevo contenido se clonará y dicho clon se adjuntará al árbol XML.

Contenido válido para documentos

Los atributos y el contenido simple no se pueden agregar a un documento.

No existen muchos escenarios que requieran la creación de un objeto XDocument.En su lugar, normalmente puede crear los árboles XML con un nodo raíz XElement.A menos que exista un requisito específico de crear un documento (por ejemplo, porque deba crear instrucciones y comentarios de procesamiento en el nivel superior, o bien deba admitir tipos de documento), a menudo resulta más conveniente usar XElement como nodo raíz.

El contenido válido para un documento incluye lo siguiente:

  • Cero o un objeto XDocumentType.Los tipos de documento deben ir antes del elemento.

  • Cero o un elemento.

  • Cero o más comentarios.

  • Cero o más instrucciones de procesamiento.

  • Cero o más nodos de texto que contengan solo espacios en blanco.

Constructores y funciones que permiten agregar contenido

Los métodos siguientes permiten agregar contenido secundario a un objeto XElement o a un objeto XDocument:

Método

Descripción

XElement

Construye un objeto XElement.

XDocument

Construye un objeto XDocument.

Add

Agrega al final del contenido secundario del objeto XElement o del objeto XDocument.

AddAfterSelf

Agrega contenido después de XNode.

AddBeforeSelf

Agrega contenido antes de XNode.

AddFirst

Agrega contenido al comienzo del contenido secundario del objeto XContainer.

ReplaceAll

Reemplaza todo el contenido (atributos y nodos secundarios) de un objeto XElement.

ReplaceAttributes

Reemplaza los atributos de un objeto XElement.

ReplaceNodes

Reemplaza los nodos secundarios por contenido nuevo.

ReplaceWith

Reemplaza un nodo por contenido nuevo.

Vea también

Conceptos

Crear árboles XML