QXmlStreamAttributes Class

The QXmlStreamAttributes class represents a vector of QXmlStreamAttribute. More...

Header: #include <QXmlStreamAttributes>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherits: QList

Note: All functions in this class are reentrant.

Public Functions

QXmlStreamAttributes()
void append(const QString &namespaceUri, const QString &name, const QString &value)
void append(const QString &qualifiedName, const QString &value)
bool hasAttribute(QAnyStringView qualifiedName) const
bool hasAttribute(QAnyStringView namespaceUri, QAnyStringView name) const
QStringView value(QAnyStringView namespaceUri, QAnyStringView name) const
QStringView value(QAnyStringView qualifiedName) const

Detailed Description

Attributes are returned by a QXmlStreamReader in attributes() when the reader reports a start element. The class can also be used with a QXmlStreamWriter as an argument to writeAttributes().

The convenience function value() loops over the vector and returns an attribute value for a given namespaceUri and an attribute's name.

New attributes can be added with append().

Member Function Documentation

QXmlStreamAttributes::QXmlStreamAttributes()

A constructor for QXmlStreamAttributes.

void QXmlStreamAttributes::append(const QString &namespaceUri, const QString &name, const QString &value)

Appends a new attribute with name in the namespace described with namespaceUri, and value value. The namespaceUri can be empty.

void QXmlStreamAttributes::append(const QString &qualifiedName, const QString &value)

This is an overloaded function.

Appends a new attribute with qualified name qualifiedName and value value.

bool QXmlStreamAttributes::hasAttribute(QAnyStringView qualifiedName) const

Returns true if this QXmlStreamAttributes has an attribute whose qualified name is qualifiedName; otherwise returns false.

Note that this is not namespace aware. For instance, if this QXmlStreamAttributes contains an attribute whose lexical name is "xlink:href" this doesn't tell that an attribute named href in the XLink namespace is present, since the xlink prefix can be bound to any namespace. Use the overload that takes a namespace URI and a local name as parameter, for namespace aware code.

bool QXmlStreamAttributes::hasAttribute(QAnyStringView namespaceUri, QAnyStringView name) const

This is an overloaded function.

Returns true if this QXmlStreamAttributes has an attribute whose namespace URI and name correspond to namespaceUri and name; otherwise returns false.

[noexcept] QStringView QXmlStreamAttributes::value(QAnyStringView namespaceUri, QAnyStringView name) const

Returns the value of the attribute name in the namespace described with namespaceUri, or an empty string reference if the attribute is not defined. The namespaceUri can be empty.

Note: In Qt versions prior to 6.6, this function was implemented as an overload set accepting combinations of QString and QLatin1StringView only.

[noexcept] QStringView QXmlStreamAttributes::value(QAnyStringView qualifiedName) const

This is an overloaded function.

Returns the value of the attribute with qualified name qualifiedName , or an empty string reference if the attribute is not defined. A qualified name is the raw name of an attribute in the XML data. It consists of the namespace prefix, followed by colon, followed by the attribute's local name. Since the namespace prefix is not unique (the same prefix can point to different namespaces and different prefixes can point to the same namespace), you shouldn't use qualified names, but a resolved namespaceUri and the attribute's local name.

Note: In Qt versions prior to 6.6, this function was implemented as an overload set accepting QString and QLatin1StringView only.