En esta página

QXmlInputSource Class

La clase QXmlInputSource proporciona los datos de entrada para las subclases de QXmlReader. Más...

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

Nota: Todas las funciones de esta clase son reentrantes.

Funciones Públicas

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)

Funciones protegidas

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

Descripción detallada

Todas las subclases de QXmlReader leen el documento XML de entrada desde esta clase.

Esta clase reconoce la codificación de los datos leyendo la declaración de codificación en el archivo XML, si la encuentra, y leyendo los datos utilizando la codificación correspondiente. Si no encuentra una declaración de codificación, asume que los datos están en UTF-8 o UTF-16, dependiendo de si puede encontrar una marca de orden de bytes.

Hay dos formas de rellenar la fuente de entrada con datos: puedes construirla con un QIODevice* para que la fuente de entrada lea los datos de ese dispositivo. O puedes establecer los datos explícitamente con una de las funciones setData().

Normalmente o bien construyes un QXmlInputSource que funcione con un QIODevice* o bien construyes un QXmlInputSource vacío y estableces los datos con setData(). Sólo en raras ocasiones querrás mezclar ambos métodos.

Las subclases de QXmlReader usan la función next() para leer la entrada caracter a caracter. Si desea volver a empezar desde el principio, utilice reset().

Las funciones data() y fetchData() son útiles si quieres hacer algo con los datos aparte del análisis sintáctico, por ejemplo, mostrar el archivo XML sin procesar. La ventaja de utilizar la QXmlInputClass en estos casos es que intenta utilizar la codificación correcta.

Véase también QXmlReader y QXmlSimpleReader.

Documentación de las funciones miembro

QXmlInputSource::QXmlInputSource()

Construye una fuente de entrada que no contiene datos.

Véase también setData().

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

Construye una fuente de entrada y obtiene los datos del dispositivo dev. Si dev no está abierto, se abre en modo sólo lectura. Si dev es 0 o no es posible leer del dispositivo, la fuente de entrada no contendrá datos.

Véase también setData(), fetchData(), y QIODevice.

[virtual noexcept] QXmlInputSource::~QXmlInputSource()

Destructor.

[virtual] QString QXmlInputSource::data() const

Devuelve los datos que contiene la fuente de entrada o una cadena vacía si la fuente de entrada no contiene ningún dato.

Véase también setData(), QXmlInputSource() y fetchData().

[virtual] void QXmlInputSource::fetchData()

Esta función lee más datos del dispositivo que se establecieron durante la construcción. Si la fuente de entrada ya contenía datos, esta función borra primero esos datos.

Este objeto no contiene datos después de una llamada a esta función si el objeto fue construido sin un dispositivo del que leer datos o si esta función no fue capaz de obtener más datos del dispositivo.

Hay dos ocasiones en las que una obtención se realiza implícitamente mediante otra llamada a una función: durante la construcción (para que el objeto comience con algunos datos iniciales si están disponibles), y durante una llamada a next() (si los datos se han agotado).

Normalmente no es necesario utilizar esta función si se utiliza next().

Véase también data(), next() y QXmlInputSource().

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

Esta función lee el archivo XML de data e intenta reconocer la codificación. Convierte los datos brutos data en un QString y lo devuelve. Hace todo lo posible para obtener la codificación correcta para el archivo XML.

Si beginning es verdadero, esta función asume que los datos comienzan al principio de un nuevo documento XML y busca una declaración de codificación. Si beginning es falso, convierte los datos brutos utilizando la codificación determinada en llamadas anteriores.

[virtual] QChar QXmlInputSource::next()

Devuelve el siguiente carácter de la fuente de entrada. Si esta función llega al final de los datos disponibles, devuelve QXmlInputSource::EndOfData. Si se llama a next() después de eso, intenta obtener más datos llamando a fetchData(). Si la llamada a fetchData() resulta en nuevos datos, esta función devuelve el primer carácter de esos datos; en caso contrario devuelve QXmlInputSource::EndOfDocument.

Los lectores, como QXmlSimpleReader, supondrán que se ha llegado al final del documento XML si esta función devuelve QXmlInputSource::EndOfDocument, y comprobarán que la entrada suministrada está bien formada. Por tanto, al reimplementar esta función, es importante asegurarse de que se duplica este comportamiento.

Véase también reset(), fetchData(), QXmlSimpleReader::parse(), y QXmlSimpleReader::parseContinue().

[virtual] void QXmlInputSource::reset()

Esta función establece la posición utilizada por next() al principio de los datos devueltos por data(). Esto resulta útil si se desea utilizar la fuente de entrada para más de un análisis sintáctico.

Nota: En el caso de que la fuente de datos subyacente sea QIODevice, la posición actual en el dispositivo no se establece automáticamente al inicio de la entrada. Llame a QIODevice::seek(0) en el dispositivo para hacerlo.

Véase también next().

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

Establece los datos de la fuente de entrada en dat.

Si la fuente de entrada ya contiene datos, esta función los borra primero.

Véase también data().

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

Los datos dat se pasan a través del códec de texto correcto, antes de que se establezcan.

Se trata de una función sobrecargada.

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