Delen via


Een tekenreeks parseren (LINQ naar XML)

In dit artikel wordt beschreven hoe u een tekenreeks parseert om een XML-structuur te maken in C# en in Visual Basic.

Opmerking

De volgende C#-code laat zien hoe u een XML-tekenreeks parseert:

XElement contacts = XElement.Parse(
    @"<Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone Type=""home"">206-555-0144</Phone>
            <Phone Type=""work"">425-555-0145</Phone>
            <Address>
            <Street1>123 Main St</Street1>
            <City>Mercer Island</City>
            <State>WA</State>
            <Postal>68042</Postal>
            </Address>
            <NetWorth>10</NetWorth>
        </Contact>
        <Contact>
            <Name>Gretchen Rivas</Name>
            <Phone Type=""mobile"">206-555-0163</Phone>
            <Address>
            <Street1>123 Main St</Street1>
            <City>Mercer Island</City>
            <State>WA</State>
            <Postal>68042</Postal>
            </Address>
            <NetWorth>11</NetWorth>
        </Contact>
    </Contacts>");
Console.WriteLine(contacts);

U kunt een tekenreeks op een vergelijkbare manier parseren in Visual Basic. Het is echter efficiënter om letterlijke XML-waarden te gebruiken, zoals wordt weergegeven in de volgende code, omdat XML-letterlijke waarden niet dezelfde prestatiestraffen ondervinden als het parseren van XML uit een tekenreeks.

Met behulp van letterlijke XML-gegevens kunt u uw XML kopiëren en plakken in uw Visual Basic-programma.

Notitie

Het parseren van tekst of het laden van een XML-document uit een tekstbestand is minder efficiënt dan functionele constructie. Als u een XML-structuur initialiseert vanuit code, duurt het minder processortijd om functionele constructie te gebruiken dan om tekst te parseren.

Dim contacts as XElement = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone Type="home">206-555-0144</Phone>
            <Phone Type="work">425-555-0145</Phone>
            <Address>
            <Street1>123 Main St</Street1>
            <City>Mercer Island</City>
            <State>WA</State>
            <Postal>68042</Postal>
            </Address>
            <NetWorth>10</NetWorth>
        </Contact>
        <Contact>
            <Name>Gretchen Rivas</Name>
            <Phone Type="mobile">206-555-0163</Phone>
            <Address>
            <Street1>123 Main St</Street1>
            <City>Mercer Island</City>
            <State>WA</State>
            <Postal>68042</Postal>
            </Address>
            <NetWorth>11</NetWorth>
        </Contact>
    </Contacts>

Het hoofdknooppunt Contacts heeft twee Contact knooppunten. Als u toegang wilt krijgen tot bepaalde specifieke gegevens in uw geparseerde XML, gebruikt u de methode XElement.Elements(), die in dit geval de onderliggende elementen van het hoofdknooppunt Contacts retourneert. In het volgende voorbeeld wordt het eerste Contact knooppunt afgedrukt naar de console:

List<XElement> contactNodes = contacts.Elements("Contact").ToList();
Console.WriteLine(contactNodes[0]);
Dim contactNodes As List(Of XElement) = contacts.Elements("Contact").ToList()
Console.WriteLine(contactNodes(0))

Zie ook