Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du parsar en sträng för att skapa ett XML-träd i C# och i Visual Basic.
Exempel
Följande C#-kod visar hur du parsar en XML-sträng:
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);
Du kan parsa en sträng i Visual Basic på ett liknande sätt. Det är dock mer effektivt att använda XML-literaler, som du ser i följande kod, eftersom XML-literaler inte drabbas av samma prestandapåföljder som att parsa XML från en sträng.
Genom att använda XML-literaler kan du bara kopiera och klistra in XML i Visual Basic-programmet.
Kommentar
Att parsa text eller läsa in ett XML-dokument från en textfil är mindre effektivt än funktionell konstruktion. Om du initierar ett XML-träd från kod tar det mindre processortid att använda funktionell konstruktion än att parsa text.
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>
Rotnoden Contacts har två Contact noder. Om du vill komma åt vissa specifika data i din parsade XML använder du metoden XElement.Elements(), som i det här fallet returnerar de underordnade elementen i rotnoden Contacts . I följande exempel skrivs den första Contact noden ut till konsolen:
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))