0

Xerces-CのSAX2APIを使用してC++でXMLファイルを解析します。だから私はDefaultHandlerインターフェースとその関数を実装します

void startElement(
    const   XMLCh* const    uri,
    const   XMLCh* const    localname,
    const   XMLCh* const    qname,
    const   xercesc::Attributes&     attrs
);

void endElement(
    const   XMLCh* const    uri,
    const   XMLCh* const    localname,
    const   XMLCh* const    qname
);

xmlファイルに構文エラーがある場合、スローされたSAXParseExceptionにより、エラーが発生した行番号が示され、エラー行をユーザーに出力できます。

私のアプリケーションでは、構文が適切に形成されている可能性がありますが、含まれているデータにはあまり意味がありません。この場合、エラー行をユーザーに出力したいと思います。しかし、xmlは構文的に正しく、SAXParseExceptionがスローされないため、現在の行番号を取得する方法が見つかりませんでした。タグの行番号を取得する方法はありますか?

4

1 に答える 1

3

setDocumentLocator()派生クラスのメソッドをオーバーライドしてxercesc::DefaultHandler、オブジェクトを取得しxercesc::Locatorます。その後、そのgetLineNumber()メソッドを呼び出すことができます。

于 2011-10-12T12:56:28.793 に答える