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.
La XElement clase es una de las clases fundamentales de LINQ to XML. Representa un elemento XML. En la lista siguiente se muestra lo que puede usar esta clase para:
- Crear elementos.
- Cambie el contenido del elemento.
- Agregar, cambiar o eliminar elementos secundarios.
- Agregue atributos a un elemento.
- Serialice el contenido de un elemento en formato de texto.
También puede interoperar con otras clases de System.Xml, como XmlReader, XmlWritery XslCompiledTransform.
En este artículo se describe la funcionalidad proporcionada por la XElement clase .
Construcción de árboles XML
Puede construir árboles XML de diferentes maneras, incluidos los siguientes:
- Puede construir un árbol XML en el código. Para obtener más información, vea Árboles XML.
- Puede analizar XML de varios orígenes, incluidos los TextReaderarchivos de texto , o una dirección web (URL). Para obtener más información, vea Analizar XML.
- Puede usar un XmlReader para rellenar el árbol. Para obtener más información, consulte ReadFrom.
- Si tiene un módulo que puede escribir contenido en un XmlWriter, puede usar el método CreateWriter para crear un generador, pasar el generador al módulo y luego usar el contenido que se escribe en el XmlWriter para rellenar el árbol XML.
En el ejemplo siguiente se crea un árbol. La versión de C# emplea creaciones de elementos anidados. Puede usar la misma técnica en Visual Basic, pero en este ejemplo se 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 puede usar una consulta LINQ to XML para rellenar un árbol XML, como se muestra en el ejemplo siguiente:
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)
En este ejemplo se genera la siguiente salida:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Serializar árboles XML
Puede serializar el árbol XML a un File, un TextWriter o un XmlWriter.
Para obtener más información, vea Serializar árboles XML.
Recuperación de datos XML a través de métodos de Axis
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 los métodos de los ejes y ofrecen varias formas flexibles y eficaces de navegar y procesar un árbol XML.
Para obtener más información, consulte Información general de ejes LINQ to XML.
Consultar árboles XML
Puede escribir consultas LINQ to XML que extraigan datos de un árbol XML.
Para obtener más información, consulte Información general sobre árboles XML de consulta.
Modificar árboles XML
Puede modificar un elemento de maneras diferentes, incluido el cambio de su contenido o atributos. También puede eliminar un elemento dependiente de un elemento primario.
Para obtener más información, vea Modificar árboles XML.