2009-03-28 10 views
1

私はこのようなQXmlDefaultHandlerでXMLファイルを解析しています:QXmlDefaultHandlerで解析する際に行番号を取得する方法は?

void Parser::ParseFilename(const char* pFilename) 
{ 
    LOG_DEBUG("Parser::ParseFilename(%s)", pFilename); 
    ClearState(); 

    m_inputFile.setFileName(pFilename); 
    QXmlInputSource source(&m_inputFile); 
    QXmlSimpleReader reader; 

    reader.setContentHandler(this); 
    reader.parse(source); 
} 

私はエラーメッセージの行番号を知っておく必要があります。どうすれば入手できますか?

答えて

0

自分自身で回答しています。

自分のカスタムエラーメッセージを生成する必要があると書いていないので、私の質問で完全にはっきりしませんでした。たとえば、特定の属性の検証を複雑にする必要があります。次に、属性が無効な場合、次のようなメッセージを書く必要があります: "行15454の列のエラー48、属性番号 'が素数でなければならないが、65536'。

Ariya Hidayat (不正な形式のXMLのような)SAXパーサ自体によって生成されたメッセージ。

私は現在のロケータについて私に告げるsetDocumentLocator (QXmlLocator * locator)をオーバーロード、そしてどこかsavedLocator = locator;実際の行番号のようなロケータの値を保存する必要があるカスタムメッセージの場合は、locator->lineNumber().することによって得られます

関連する問題