Delen via


Functionele constructie (LINQ naar XML)

LINQ naar XML biedt een krachtige manier om XML-elementen te maken die functionele constructie worden genoemd. Met functionele constructie kunt u in één instructie een XML-structuur maken.

Verschillende belangrijke functies van de LINQ naar XML-programmeerinterface worden gebruikt in functionele constructie:

  • De XElement constructor gebruikt verschillende typen argumenten voor inhoud. U kunt bijvoorbeeld een ander XElement object doorgeven, dat een onderliggend element wordt. U kunt een XAttribute object doorgeven. Dit wordt een kenmerk van het element. U kunt ook elk ander type object doorgeven, dat wordt geconverteerd naar een tekenreeks en de tekstinhoud van het element wordt.
  • De XElement constructor heeft een params matrix van het type Object, zodat u een willekeurig aantal objecten aan de constructor kunt doorgeven. Hiermee kunt u een element met complexe inhoud maken.
  • Als een object wordt geïmplementeerd IEnumerable<T>, wordt de verzameling in het object geïnventariseerd en worden alle items in de verzameling toegevoegd. Als de verzameling objecten bevat XElement , XAttribute wordt elk item in de verzameling afzonderlijk toegevoegd. Dit is belangrijk omdat u hiermee de resultaten van een LINQ-query kunt doorgeven aan de constructor.

Voorbeeld: Een XML-structuur maken

U kunt functionele constructie gebruiken om code te schrijven om een XML-structuur te maken. Hier volgt een voorbeeld:

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")
            )
        )
    );

Voorbeeld: Een XML-structuur maken met LINQ-queryresultaten

Met deze functies kunt u ook code schrijven die gebruikmaakt van de resultaten van LINQ-query's wanneer u een XML-structuur maakt, zoals in het volgende voorbeeld:

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);

In Visual Basic wordt hetzelfde bereikt met letterlijke XML-waarden:

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 CInt(el) > 2 _
            Select el %>
    </Root>
Console.WriteLine(xmlTree)

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

<Root>
  <Child>1</Child>
  <Child>2</Child>
  <Element>3</Element>
  <Element>4</Element>
  <Element>5</Element>
</Root>

Zie ook