方法 : 解析エラーをキャッチする
このトピックでは、形式が正しくないか無効な XML を検出する方法について説明します。
LINQ to XML は、XmlReader を使用して実装されます。 形式が正しくない XML や無効な XML が LINQ to XML に渡されると、基になる XmlReader クラスから例外がスローされます。 XML を解析するさまざまなメソッド (XElement.Parse など) はこの例外をキャッチしません。この例外は、アプリケーションでキャッチできます。
XML リテラルを使用する場合は、解析エラーを検出できないことに注意してください。 Visual Basic コンパイラは、形式が正しくないか無効な XML をキャッチします。
使用例
次のコードでは、無効な 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
このコードを実行すると、次の例外がスローされます。
The 'Contacts' start tag on line 1 does not match the end tag of 'Contcts'. Line 5, position 13.
XElement.Parse、XDocument.Parse、XElement.Load、および XDocument.Load メソッドによってスローされる例外の詳細については、XmlReader のドキュメントを参照してください。