Så här fångar du parsningsfel (LINQ till XML)

Den här artikeln visar hur du identifierar felaktigt formad eller ogiltig XML i C# eller Visual Basic.

LINQ till XML implementeras med .XmlReader Om felaktig eller ogiltig XML skickas till LINQ till XML utlöser den underliggande XmlReader klassen ett undantag. De olika metoder som parsar XML, till exempel XElement.Parse, fångar inte undantaget. Undantaget kan sedan fångas upp av ditt program.

Exempel: Parsa ogiltig XML

Följande kod försöker parsa ogiltig XML.

try {
    XElement contacts = XElement.Parse(
        @"<Contacts>
            <Contact>
                <Name>Jim Wilson</Name>
            </Contact>
          </Contcts>");

    Console.WriteLine(contacts);
}
catch (System.Xml.XmlException e)
{
    Console.WriteLine(e.Message);
}
Try
    Dim contacts As XElement = XElement.Parse("<Contacts>" & vbCrLf & _
        "    <Contact>" & vbCrLf & _
        "        <Name>Jim Wilson</Name>" & vbCrLf & _
        "    </Contact>" & vbCrLf & _
        "</Contcts>")

    Console.WriteLine(contacts)
Catch e As System.Xml.XmlException
    Console.WriteLine(e.Message)
End Try

På grund av den ogiltiga sluttaggen </Contcts>genererar exemplet följande undantag:

The 'Contacts' start tag on line 1 doesn't match the end tag of 'Contcts'. Line 5, position 13.

Information om de undantag som XElement.Parsemetoderna , XDocument.Parse, XElement.Loadoch XDocument.Load genererar finns i dokumentationen XmlReader .

Se även