Abfangen von Parserfehlern (LINQ to XML)

In diesem Artikel erfahren Sie, wie Sie nicht wohlgeformte oder ungültige XML-Daten in C# oder Visual Basic erkennen.

LINQ to XML wird mit XmlReader implementiert. Wenn nicht wohlgeformte oder ungültige XML-Daten an LINQ to XML übergeben werden, löst die zugrunde liegende XmlReader-Klasse eine Ausnahme aus. Die verschiedenen Methoden zum Parsen von XML-Daten (z. B. XElement.Parse) fangen die Ausnahme nicht ab. Die Ausnahme kann dann von Ihrer Anwendung abgefangen werden.

Beispiel: Parsen von ungültigen XML-Daten

Der folgende Code versucht, ungültige XML-Daten zu parsen.

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

Aufgrund des ungültigen Endtags </Contcts> löst das Beispiel die folgende Ausnahme aus:

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

Weitere Informationen zu den Ausnahmen, die von den Methoden XElement.Parse, XDocument.Parse, XElement.Load und XDocument.Load ausgelöst werden, finden Sie in der XmlReader-Dokumentation.

Siehe auch