QXmlContentHandler Class
QXmlContentHandler 클래스는 XML 데이터의 논리적 내용을 보고하는 인터페이스를 제공합니다. 더 보기...
Header: | #include <QXmlContentHandler> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
상속 대상: |
참고: 이 클래스의 모든 함수는 재진입됩니다.
공용 함수
virtual | ~QXmlContentHandler() |
virtual bool | characters(const QString &ch) = 0 |
virtual bool | endDocument() = 0 |
virtual bool | endElement(const QString &namespaceURI, const QString &localName, const QString &qName) = 0 |
virtual bool | endPrefixMapping(const QString &prefix) = 0 |
virtual QString | errorString() const = 0 |
virtual bool | ignorableWhitespace(const QString &ch) = 0 |
virtual bool | processingInstruction(const QString &target, const QString &data) = 0 |
virtual void | setDocumentLocator(QXmlLocator *locator) = 0 |
virtual bool | skippedEntity(const QString &name) = 0 |
virtual bool | startDocument() = 0 |
virtual bool | startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) = 0 |
virtual bool | startPrefixMapping(const QString &prefix, const QString &uri) = 0 |
자세한 설명
애플리케이션이 기본 구문 분석 이벤트에 대한 알림을 받아야 하는 경우 이 인터페이스를 구현하고 QXmlReader::setContentHandler()를 사용하여 활성화할 수 있습니다. 그러면 리더는 이 인터페이스를 통해 요소 및 문자 데이터의 시작과 끝과 같은 기본적인 문서 관련 이벤트를 보고할 수 있습니다.
이 인터페이스에서 이벤트의 순서는 매우 중요하며 문서 자체의 정보 순서를 반영합니다. 예를 들어, 요소의 모든 콘텐츠(문자 데이터, 처리 지침 및 하위 요소)는 startElement() 이벤트와 해당 endElement() 이벤트 사이에 순서대로 표시됩니다.
QXmlDefaultHandler 클래스는 이 인터페이스의 기본 구현을 제공하며, 일부 구문 분석 이벤트에 대한 알림만 받으려면 QXmlDefaultHandler 클래스에서 서브클래싱하면 매우 편리합니다.
startDocument() 함수는 문서의 시작 부분에 호출되고 endDocument() 함수는 끝 부분에 호출됩니다. 구문 분석을 시작하기 전에 setDocumentLocator()가 호출됩니다. 각 요소에 대해 startElement()가 호출되고 각 요소의 끝에 endElement()가 호출됩니다. characters () 함수는 문자 데이터 청크와 함께 호출되며, ignorableWhitespace()는 공백 청크와 함께 호출되고 processingInstruction()는 처리 지침과 함께 호출됩니다. 엔티티를 건너뛰면 skippedEntity()가 호출됩니다. 접두사-URI 범위의 시작 부분에 startPrefixMapping()가 호출됩니다.
QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, QXmlLexicalHandler 를참조하세요 .
멤버 함수 문서
[virtual noexcept]
QXmlContentHandler::~QXmlContentHandler()
콘텐츠 핸들러를 삭제합니다.
[pure virtual]
bool QXmlContentHandler::characters(const QString &ch)
리더는 문자 데이터 청크(일반 문자 데이터 또는 CDATA 섹션 내의 문자 데이터, 이 두 유형을 구분해야 하는 경우 QXmlLexicalHandler::startCDATA() 및 QXmlLexicalHandler::endCDATA())를 사용해야 함)를 파싱한 경우 이 함수를 호출합니다. 문자 데이터는 ch 으로 보고됩니다.
일부 독자는 이 함수를 사용하지 않고 ignorableWhitespace() 함수를 사용하여 요소 콘텐츠의 공백을 보고합니다.
예를 들어 판독기는 요소의 문자 데이터를 두 개 이상의 청크로 보고할 수 있습니다. 예를 들어 판독기는 "a<b"를 세 개의 문자() 이벤트("a", "<" 및 " b")로 보고할 수 있습니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
[pure virtual]
bool QXmlContentHandler::endDocument()
리더는 구문 분석이 완료된 후 이 함수를 호출합니다. 한 번만 호출되며 마지막으로 호출되는 핸들러 함수입니다. 리더가 모든 입력을 읽었거나 치명적인 오류로 인해 구문 분석을 포기한 후에 호출됩니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
startDocument()도 참조하세요 .
[pure virtual]
bool QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
리더는 정규화된 이름 qName, 로컬 이름 localName 및 네임스페이스 URI namespaceURI 로 끝 요소 태그를 구문 분석했을 때 이 함수를 호출합니다.
이 함수가 false
을 반환하면 판독기는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
startElement()도 참조하세요 .
[pure virtual]
bool QXmlContentHandler::endPrefixMapping(const QString &prefix)
리더는 이 함수를 호출하여 접두사 prefix 에 대한 접두사 매핑의 끝을 알립니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
startPrefixMapping()도 참조하세요 .
[pure virtual]
QString QXmlContentHandler::errorString() const
예를 들어 핸들러 함수 중 하나가 false
을 반환하는 경우와 같이 리더는 이 함수를 호출하여 오류 문자열을 가져옵니다.
[pure virtual]
bool QXmlContentHandler::ignorableWhitespace(const QString &ch)
일부 독자는 이 기능을 사용하여 요소 콘텐츠의 각 공백 덩어리를 보고할 수 있습니다. 공백은 ch 에서 보고됩니다.
이 함수가 false
을 반환하면 판독기는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
[pure virtual]
bool QXmlContentHandler::processingInstruction(const QString &target, const QString &data)
리더는 처리 명령을 구문 분석했을 때 이 함수를 호출합니다.
target 는 처리 명령의 대상 이름이고 data 는 처리 명령의 데이터입니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
[pure virtual]
void QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)
리더는 문서 구문 분석을 시작하기 전에 이 함수를 호출합니다. locator 인수는 QXmlLocator 에 대한 포인터로, 애플리케이션이 문서 내에서 구문 분석 위치를 가져올 수 있도록 합니다.
locator 은 리더가 파괴될 때 파괴되므로 파괴하지 마세요. (리더가 소멸된 후에는 locator 을 사용하지 마세요).
[pure virtual]
bool QXmlContentHandler::skippedEntity(const QString &name)
일부 독자는 선언을 보지 못한 경우(예: 외부 DTD에 있기 때문에) 엔티티를 건너뛸 수 있습니다. 그런 경우 이 함수를 호출하여 name 라는 엔티티를 건너뛰었다고 보고합니다.
이 함수가 false
을 반환하면 판독기는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
[pure virtual]
bool QXmlContentHandler::startDocument()
리더는 문서 구문 분석을 시작할 때 이 함수를 호출합니다. 리더는 setDocumentLocator() 호출 후 이 클래스 또는 QXmlDTDHandler 클래스의 다른 함수가 호출되기 전에 이 함수를 한 번만 호출합니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
endDocument()도 참조하세요 .
[pure virtual]
bool QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
리더는 시작 요소 태그를 파싱하면 이 함수를 호출합니다.
해당 끝 요소 태그를 읽으면 해당 endElement() 호출이 있습니다. startElement() 및 endElement() 호출은 항상 올바르게 중첩됩니다. 빈 요소 태그(예: <x/>
)는 startElement() 호출 바로 뒤에 endElement() 호출이 발생합니다.
제공된 속성 목록에는 명시적 값을 가진 속성만 포함됩니다. 속성 목록에는 판독기의 이름 공간 접두사 속성이 true인 경우에만 이름 공간 선언에 사용되는 속성(즉, xmlns로 시작하는 속성)이 포함됩니다.
namespaceURI 인수는 네임스페이스 URI이거나 요소에 네임스페이스 URI가 없거나 네임스페이스 처리가 수행되지 않은 경우 빈 문자열입니다. localName 은 로컬 이름(접두사 제외) 또는 네임스페이스 처리가 수행되지 않은 경우 빈 문자열이고, qName 은 정규화된 이름(접두사 포함) 및 atts 은 요소에 첨부된 어트리뷰트입니다. 속성이 없는 경우 atts 은 빈 속성 객체입니다.
이 함수가 false
을 반환하면 판독기는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
endElement()도 참조하세요 .
[pure virtual]
bool QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)
리더는 이 함수를 호출하여 접두사-URI 네임스페이스 매핑 범위의 시작을 알립니다. 이 정보는 리더가 요소 및 속성 이름의 접두사를 자동으로 대체하므로 일반적인 네임스페이스 처리에는 필요하지 않습니다.
startPrefixMapping() 및 endPrefixMapping() 호출은 서로에 대해 올바르게 중첩되는 것이 보장되지 않습니다. 모든 startPrefixMapping() 이벤트는 해당 startElement() 이벤트 전에 발생하고 모든 endPrefixMapping() 이벤트는 해당 endElement() 이벤트 후에 발생하지만 순서는 보장되지 않습니다.
인자 prefix 는 선언되는 네임스페이스 접두사이고 인자 uri 는 접두사가 매핑되는 네임스페이스 URI입니다.
이 함수가 false
을 반환하면 리더는 구문 분석을 중지하고 오류를 보고합니다. 리더는 errorString() 함수를 사용하여 오류 메시지를 가져옵니다.
endPrefixMapping()도 참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.