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:
Cualquier tipo que implemente ToString().
Cualquier tipo que implemente IEnumerable<T>.
Al agregar contenido complejo, se pueden pasar varios tipos a este método:
Cualquier tipo que implemente IEnumerable<T>.
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. |
Agrega al final del contenido secundario del objeto XElement o del objeto XDocument. |
|
Agrega contenido después de XNode. |
|
Agrega contenido antes de XNode. |
|
Agrega contenido al comienzo del contenido secundario del objeto XContainer. |
|
Reemplaza todo el contenido (atributos y nodos secundarios) de un objeto XElement. |
|
Reemplaza los atributos de un objeto XElement. |
|
Reemplaza los nodos secundarios por contenido nuevo. |
|
Reemplaza un nodo por contenido nuevo. |