Condividi tramite


Procedura: intercettare errori di analisi

In questo argomento viene illustrato come rilevare XML non corretto o non valido.

LINQ to XML viene implementato usando XmlReader. Se a LINQ to XML viene passato XML non corretto o non valido, la classe XmlReader sottostante genererà un'eccezione. I vari metodi che analizzano XML, ad esempio XElement.Parse, non rilevano l'eccezione; l'eccezione può quindi essere intercettata dall'applicazione.

Si noti che non è possibile ottenere errori di analisi se si usano valori letterali XML. Il compilatore Visual Basic intercetterà errori di XML non corretto o non valido.

Esempio

Nel codice seguente si tenta di analizzare XML non valido:

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

Quando viene eseguito, questo codice genera la seguente eccezione:

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

Per informazioni sulle eccezioni che si può prevedere vengano generate dai metodi XElement.Parse, XDocument.Parse, XElement.Load e XDocument.Load, vedere la documentazione relativa a XmlReader.

Vedere anche

Concetti

Analisi di XML