返回介绍

QXmlSimpleReader Class

发布于 2019-10-04 15:04:19 字数 4106 浏览 1102 评论 0 收藏 0

The QXmlSimpleReader class provides an implementation of a simple XML reader (parser). More...

#include <qxml.h>

Inherits QXmlReader.

List of all member functions.

Public Members

  • QXmlSimpleReader ()
  • virtual ~QXmlSimpleReader ()
  • virtual bool parse ( constQXmlInputSource*input, boolincremental )
  • virtual bool parseContinue ()

Detailed Description

The QXmlSimpleReader class provides an implementation of a simple XML reader (parser).

This XML reader is sufficient for simple parsing tasks. The reader:

  • provides a well-formed parser;
  • does not parse any external entities;
  • can do namespace processing.

Documents are parsed with a call to parse().

See the tiny SAX2 parser walkthrough.

See also XML.


Member Function Documentation

QXmlSimpleReader::QXmlSimpleReader ()

Constructs a simple XML reader with the following feature settings:
  • http://xml.org/sax/features/namespaces TRUE
  • http://xml.org/sax/features/namespace-prefixes FALSE
  • http://trolltech.com/xml/features/report-whitespace-only-CharData TRUE
  • http://trolltech.com/xml/features/report-start-end-entity FALSE

More information about features can be found in the Qt SAX2 overview.

See also setFeature().

QXmlSimpleReader::~QXmlSimpleReader () [virtual]

Destroys the simple XML reader.

bool QXmlSimpleReader::parse ( constQXmlInputSource*input, boolincremental ) [virtual]

Reads an XML document from input and parses it. Returns FALSE if the parsing detects an error; otherwise returns TRUE.

If incremental is TRUE, the parser does not return FALSE when it reaches the end of the input without reaching the end of the XML file. Instead it stores the state of the parser so that parsing can be continued at a later stage when more data is available. You can use the function parseContinue() to continue with parsing. This class stores a pointer to the input source input and the parseContinue() tries to read from that input souce. This means you should not delete the input source input until you've finished your calls to parseContinue(). If you call this function with incremental TRUE whilst an incremental parse is in progress a new parsing session will be started and the previous session lost.

If incremental is FALSE, this function behaves like the normal parse function, i.e. it returns FALSE when the end of input is reached without reaching the end of the XML file and the parsing can't be continued.

See also parseContinue() and QSocket.

Examples: xml/tagreader-with-features/tagreader.cpp and xml/tagreader/tagreader.cpp.

bool QXmlSimpleReader::parseContinue () [virtual]

Continues incremental parsing; this function reads the input from the QXmlInputSource that was specified with the last parse() command. To use this function, you must have called parse() with the incremental argument set to TRUE.

Returns FALSE if a parsing error occurs; otherwise returns TRUE.

If the input source returns an empty string for the function QXmlInputSource::data(), then this means that the end of the XML file is reached; this is quite important, especially if you want to use the reader to parse more than one XML file.

The case that the end of the XML file is reached without having finished the parsing is not considered as an error -- you can continue parsing at a later stage by calling this function again when there is more data available to parse.

This function assumes that the end of the XML document is reached if the QXmlInputSource::next() function returns QXmlInputSource::EndOfDocument. If the parser has not finished parsing when it encounters this symbol, it is an error and FALSE is returned.

See also parse() and QXmlInputSource::next().

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文