Información general de la clase XElement
La clase XElement es una de las clases fundamentales de LINQ to XML. Representa a un elemento XML. En la lista siguiente se incluyen las acciones que puedes hacer con esta clase:
- Crear elementos.
- Cambiar el contenido del elemento.
- Agregar, cambiar o eliminar elementos secundarios.
- Agregar atributos a un elemento.
- Serializar el contenido de un elemento en formato de texto.
También puede operar con otras clases de System.Xml, como son XmlReader, XmlWriter y XslCompiledTransform.
En este artículo se describe la funcionalidad que ofrece la clase XElement.
Construcción de árboles XML
Es posible construir árboles XML de formas distintas, entre las que se incluyen las siguientes:
- Puede construir un árbol XML mediante código. Para más información, consulte Árboles XML.
- Puede analizar XML a partir de diferentes orígenes, incluyendo un TextReader, archivos de texto o direcciones web (URL). Para más información, consulte Analizar XML.
- También puede utilizar un XmlReader para rellenar el árbol. Para obtener más información, vea ReadFrom.
- Si dispone de un módulo que pueda escribir contenidos en un XmlWriter, puede utilizar el método CreateWriter para crear un sistema de escritura, para pasar este al módulo y para utilizar después el contenido que se haya escrito en XmlWriter para rellenar el árbol XML.
En el siguiente ejemplo se crea un árbol. La versión de C# emplea creaciones de elementos anidados. Es posible usar la misma técnica en Visual Basic, pero en este ejemplo de usan literales XML.
XElement contacts =
new XElement("Contacts",
new XElement("Contact",
new XElement("Name", "Patrick Hines"),
new XElement("Phone", "206-555-0144"),
new XElement("Address",
new XElement("Street1", "123 Main St"),
new XElement("City", "Mercer Island"),
new XElement("State", "WA"),
new XElement("Postal", "68042")
)
)
);
Dim contacts As XElement = _
<Contacts>
<Contact>
<Name>Patrick Hines</Name>
<Phone>206-555-0144</Phone>
<Address>
<Street1>123 Main St</Street1>
<City>Mercer Island</City>
<State>WA</State>
<Postal>68042</Postal>
</Address>
</Contact>
</Contacts>
También se puede usar una consulta de LINQ to XML para rellenar un árbol XML, como se muestra en el siguiente ejemplo:
XElement srcTree = new XElement("Root",
new XElement("Element", 1),
new XElement("Element", 2),
new XElement("Element", 3),
new XElement("Element", 4),
new XElement("Element", 5)
);
XElement xmlTree = new XElement("Root",
new XElement("Child", 1),
new XElement("Child", 2),
from el in srcTree.Elements()
where (int)el > 2
select el
);
Console.WriteLine(xmlTree);
Dim srcTree As XElement = _
<Root>
<Element>1</Element>
<Element>2</Element>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Dim xmlTree As XElement = _
<Root>
<Child>1</Child>
<Child>2</Child>
<%= From el In srcTree.Elements() _
Where el.Value > 2 _
Select el %>
</Root>
Console.WriteLine(xmlTree)
Este ejemplo produce el siguiente resultado:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Serialización de árboles XML
Puede serializar un árbol XML en un File, un TextWriter o en un XmlWriter.
Para obtener más información, consulte Serializar árboles XML.
Recuperar datos XML mediante los métodos de los ejes
Puede utilizar los métodos de los ejes para recuperar atributos, elementos secundarios, elementos descendientes y elementos antecesores. Las consultas LINQ to XML operan sobre métodos de eje y proporcionan varias formas flexibles y eficaces de recorrer y procesar árboles XML.
Para obtener más información, consulte Información general de ejes LINQ to XML.
Consulta de árboles XML
Puede escribir consultas LINQ to XML para extraer datos de un árbol XML.
Para obtener más información, consulte Información general de los árboles XML de consulta.
Modificación de árboles XML
Puede modificar un elemento de diferentes maneras, incluyendo el cambiar su contenido o sus atributos. También puede eliminar un elemento dependiente de un elemento primario.
Para obtener más información, vea Modificar árboles XML.