Partilhar via


Como: Erros de análise de captura

Este tópico mostra como detectar XML mal formado ou inválido.

LINQ to XML é implementado usando XmlReader. Se malformado ou XML válido é passado para LINQ to XML, a classe subjacente de XmlReader irá acionar uma exceção. Os vários métodos que analisam XML, como XElement.Parse, não captura a exceção; a exceção pode ser capturada por seu aplicativo.

Observe que você não pode obter análise erros se você usar literais XML. O compilador do Visual Basic irá capturar erros de XML mal formado ou inválido.

Exemplo

O código a seguir tenta analisar XML válido:

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 você executa esse código, gerencie a seguinte exceção:

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

Para obter informações sobre as exceções que você pode esperar XElement.Parse, XDocument.Parse, XElement.Load, e métodos de XDocument.Load lançar, consulte a documentação de XmlReader .

Consulte também

Conceitos

Analisando XML