XmlException を使用した XmlTextReader の例外処理

更新 : November 2007

XmlException クラスを XmlTextReader クラスと共に使用して、解析中に構文エラーが見つかったときにデータのエラーを捕捉します。データは W3C (World Wide Web Consortium) 勧告で規定されている規則に従って構造化する必要がありますが、データを構造化する方法に問題があると、問題のあるデータがエラーとして捕捉されます。

ch49a7ch.alert_note(ja-jp,VS.90).gifメモ :

.NET Framework version 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  + ")");
}

参照

概念

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

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

XmlTextReader による空白の取り扱い

属性値の正規化

参照

XmlReader

XmlTextReader