QXmlInputSource Class

QXmlInputSource 클래스는 QXmlReader 하위 클래스에 대한 입력 데이터를 제공합니다. 더 보기...

헤더: #include <QXmlInputSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat

참고: 이 클래스의 모든 함수는 재진입합니다.

공개 함수

QXmlInputSource()
QXmlInputSource(QIODevice *dev)
virtual ~QXmlInputSource()
virtual QString data() const
virtual void fetchData()
virtual QChar next()
virtual void reset()
virtual void setData(const QString &dat)
virtual void setData(const QByteArray &dat)

보호된 함수

virtual QString fromRawData(const QByteArray &data, bool beginning = false)

자세한 설명

QXmlReader 의 모든 서브클래스는 이 클래스에서 입력 XML 문서를 읽습니다.

이 클래스는 XML 파일에서 인코딩 선언을 찾으면 이를 읽고 해당 인코딩을 사용하여 데이터를 읽음으로써 데이터의 인코딩을 인식합니다. 인코딩 선언을 찾지 못하면 바이트 순서 표시를 찾을 수 있는지 여부에 따라 데이터가 UTF-8 또는 UTF-16으로 되어 있다고 가정합니다.

입력 소스를 데이터로 채우는 방법에는 두 가지가 있습니다. QIODevice*로 입력 소스를 구성하여 입력 소스가 해당 장치에서 데이터를 읽도록 할 수 있습니다. 또는 setData() 함수 중 하나를 사용하여 데이터를 명시적으로 설정할 수 있습니다.

일반적으로 QIODevice*에서 작동하는 QXmlInputSource를 구성하거나 빈 QXmlInputSource를 구성하고 setData()로 데이터를 설정합니다. 두 가지 방법을 모두 사용해야 하는 경우는 드뭅니다.

QXmlReader 서브클래스는 next() 함수를 사용하여 입력 문자를 한 글자씩 읽습니다. 처음부터 다시 시작하려면 reset()를 사용합니다.

data() 및 fetchData() 함수는 원시 XML 파일을 표시하는 등 구문 분석 이외의 작업을 수행하려는 경우에 유용합니다. 이러한 경우 QXmlInputClass를 사용하면 올바른 인코딩을 사용하려고 시도한다는 이점이 있습니다.

QXmlReaderQXmlSimpleReader참조하십시오 .

멤버 함수 문서

QXmlInputSource::QXmlInputSource()

데이터가 포함되지 않은 입력 소스를 구축합니다.

setData()도 참조하세요 .

[explicit] QXmlInputSource::QXmlInputSource(QIODevice *dev)

입력 소스를 구성하고 장치에서 데이터를 가져옵니다 dev. dev 이 열려 있지 않으면 읽기 전용 모드로 열립니다. dev 이 0이거나 장치에서 읽을 수 없는 경우 입력 소스에는 데이터가 포함되지 않습니다.

setData(), fetchData() 및 QIODevice참조하세요 .

[virtual noexcept] QXmlInputSource::~QXmlInputSource()

파괴자.

[virtual] QString QXmlInputSource::data() const

입력 소스에 포함된 데이터를 반환하거나 입력 소스에 데이터가 없는 경우 빈 문자열을 반환합니다.

setData(), QXmlInputSource() 및 fetchData()도 참조하세요 .

[virtual] void QXmlInputSource::fetchData()

이 함수는 구성 중에 설정한 장치에서 더 많은 데이터를 읽습니다. 입력 소스에 이미 데이터가 포함되어 있는 경우 이 함수는 먼저 해당 데이터를 삭제합니다.

데이터를 읽을 장치 없이 객체를 만들었거나 이 함수가 장치에서 더 많은 데이터를 가져올 수 없는 경우 이 함수를 호출한 후 이 객체에는 데이터가 없습니다.

다른 함수 호출에 의해 암시적으로 가져오기가 수행되는 경우는 두 가지가 있습니다: 객체를 구성하는 동안(사용 가능한 경우 일부 초기 데이터로 시작하기 위해) 및 next() 호출 중(데이터가 부족할 경우).

next()를 사용하는 경우에는 일반적으로 이 함수를 사용할 필요가 없습니다.

data(), next() 및 QXmlInputSource()도 참조하세요 .

[virtual protected] QString QXmlInputSource::fromRawData(const QByteArray &data, bool beginning = false)

이 함수는 data 에서 XML 파일을 읽고 인코딩을 인식하려고 시도합니다. 원시 데이터 dataQString 로 변환하여 반환합니다. 이 함수는 XML 파일의 올바른 인코딩을 얻기 위해 최선을 다합니다.

beginning 이 참이면 이 함수는 데이터가 새 XML 문서의 시작 부분에서 시작한다고 가정하고 인코딩 선언을 찾습니다. beginning 이 거짓이면 이전 호출에서 결정된 인코딩을 사용하여 원시 데이터를 변환합니다.

[virtual] QChar QXmlInputSource::next()

입력 소스의 다음 문자를 반환합니다. 이 함수는 사용 가능한 데이터의 끝에 도달하면 QXmlInputSource::EndOfData를 반환합니다. 그 후에 next()를 호출하면 fetchData()를 호출하여 더 많은 데이터를 가져오려고 시도합니다. fetchData () 호출로 새 데이터가 생성되면 이 함수는 해당 데이터의 첫 번째 문자를 반환하고, 그렇지 않으면 QXmlInputSource::EndOfDocument를 반환합니다.

QXmlSimpleReader 와 같은 판독기는 이 함수가 QXmlInputSource::EndOfDocument를 반환하면 XML 문서의 끝에 도달한 것으로 간주하고 제공된 입력이 제대로 형식화되었는지 확인합니다. 따라서 이 함수를 다시 구현할 때는 이 동작이 중복되는지 확인하는 것이 중요합니다.

reset(), fetchData(), QXmlSimpleReader::parse() 및 QXmlSimpleReader::parseContinue()도 참조하세요 .

[virtual] void QXmlInputSource::reset()

이 함수는 next()에서 사용하는 위치를 data()에서 반환한 데이터의 시작 부분으로 설정합니다. 이 함수는 입력 소스를 두 개 이상의 파싱에 사용하려는 경우에 유용합니다.

참고: 기본 데이터 소스가 QIODevice 인 경우 장치에서 현재 위치가 입력 시작점으로 자동 설정되지 않습니다. 이렇게 하려면 장치에서 QIODevice::seek(0)을 호출하세요.

next()도 참조하세요 .

[virtual] void QXmlInputSource::setData(const QString &dat)

입력 소스의 데이터를 dat 로 설정합니다.

입력 소스에 이미 데이터가 포함되어 있는 경우 이 함수는 먼저 해당 데이터를 삭제합니다.

data()도 참조하세요 .

[virtual] void QXmlInputSource::setData(const QByteArray &dat)

이 함수는 오버로드된 함수입니다.

dat 데이터는 설정되기 전에 올바른 텍스트 코덱을 통과합니다.

© 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.