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 ドキュメント上のエラーの LineNumberLinePosition、およびソース 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  + ")");
}

参照

関連項目

XmlReader

XmlTextReader

概念

XmlTextReader による XML データの読み取り

文字ストリームによるコンテンツ全体の読み取り

XmlTextReader による空白の取り扱い

属性値の正規化