XmlException を使用した XmlTextReader の例外処理
XmlException クラスを XmlTextReader クラスと共に使用して、解析中に構文エラーが見つかったときにデータのエラーを捕捉します。データは W3C (World Wide Web Consortium) 勧告で規定されている規則に従って構造化する必要がありますが、データを構造化する方法に問題があると、問題のあるデータがエラーとして捕捉されます。
注意
.NET Framework 2.0 では、XmlReaderSettings クラスと Create メソッドを使って XmlReader インスタンスを作成する方法を推奨しています。この方法に従えば、.NET Framework 2.0 で導入されたすべての新しい機能を利用できます。詳細については、「XML リーダーの作成」を参照してください。
例
LineNumber.xml ドキュメントの XML が整形式でない場合に、XmlException クラスが LineNumber.xml ドキュメント上のエラーの LineNumber、LinePosition、およびソース URI を返す例を次のコード サンプルに示します。
Dim tr As New XmlTextReader("LineNumber.xml")
Dim r As New XmlValidatingReader(tr)
r.ValidationType = ValidationType.None
Try
While r.Read()
End While
Catch e As XmlException
Console.WriteLine(e.Message)
Console.WriteLine(("Exception object Line, pos: (" & e.LineNumber & "," & e.LinePosition & ")"))
Console.WriteLine("Exception source URI: (" + e.SourceURI + ")")
Console.WriteLine(("XmlReader Line, pos: (" & tr.LineNumber & "," & tr.LinePosition & ")"))
End Try
XmlTextReader tr = new XmlTextReader("LineNumber.xml");
XmlValidatingReader r = new XmlValidatingReader(tr);
r.ValidationType = ValidationType.None;
try {
while(r.Read());
}
catch(XmlException e) {
Console.WriteLine(e.Message);
Console.WriteLine("Exception object Line, pos: (" + e.LineNumber + "," + e.LinePosition + ")");
Console.WriteLine("Exception source URI: (" + e.SourceURI + ")");
Console.WriteLine("XmlReader Line, pos: (" + tr.LineNumber + "," + tr.LinePosition + ")");
}