이 페이지에서

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 파일에서 인코딩 선언을 발견하면 이를 읽고, 해당 인코딩을 사용하여 데이터를 읽음으로써 데이터의 인코딩을 인식합니다. 인코딩 선언을 찾지 못하면, 바이트 순서 표시(BOM)를 찾을 수 있는지 여부에 따라 데이터가 UTF-8 또는 UTF-16 중 하나라고 가정합니다.

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

일반적으로 ` QIODevice*`을 기반으로 하는 `QXmlInputSource`를 생성하거나, 빈 `QXmlInputSource`를 생성한 후 ` setData()` 함수를 사용하여 데이터를 설정합니다. 두 방법을 혼합하여 사용하는 경우는 매우 드뭅니다.

QXmlReader 의 하위 클래스들은 next() 함수를 사용하여 입력을 한 글자씩 읽습니다. 처음부터 다시 시작하려면 reset()를 사용하십시오.

data() 및 fetchData() 함수는 파싱 이외의 작업(예: 원시 XML 파일 표시)을 수행하려는 경우 유용합니다. 이러한 경우 QXmlInputClass를 사용하면 올바른 인코딩을 자동으로 적용해 준다는 장점이 있습니다.

QXmlReader 및 QXmlSimpleReader도 참조하십시오 .

멤버 함수 문서

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 파일을 읽어와 인코딩을 식별하려고 시도합니다. 원시 데이터 data 를 QString 로 변환하여 반환합니다. 이 함수는 XML 파일의 올바른 인코딩을 파악하기 위해 최선을 다합니다.

beginning 가 true인 경우, 이 함수는 데이터가 새로운 XML 문서의 시작 부분에서 시작된다고 가정하고 인코딩 선언을 찾습니다. beginning 가 false인 경우, 이전 호출에서 확인된 인코딩을 사용하여 원시 데이터를 변환합니다.

[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 데이터는 설정되기 전에 올바른 텍스트 코덱을 통해 처리됩니다.

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

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