Spec-Zone.ru › Qt 5.9

Класс QDomElement

Класс QDomElement представляет один элемент в дереве DOM. Подробнее...

Заголовок: #include <QDomElement>
qmake: QT += xml
Наследует: QDomNode
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются реентерабельными.

Публичные функции

QDomElement()
QDomElement(const QDomElement &x)
QString attribute(const QString &name, const QString &defValue = QString()) const
QString attributeNS(const QString nsURI, const QString &localName, const QString &defValue = QString()) const
QDomAttr attributeNode(const QString &name)
QDomAttr attributeNodeNS(const QString &nsURI, const QString &localName)
QDomNamedNodeMap attributes() const
QDomNodeList elementsByTagName(const QString &tagname) const
QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName) const
bool hasAttribute(const QString &name) const
bool hasAttributeNS(const QString &nsURI, const QString &localName) const
QDomNode::NodeType nodeType() const
void removeAttribute(const QString &name)
  • 65 публичных функций, унаследованных от QDomNode

Подробное описание

Класс QDomElement представляет один элемент в дереве DOM.

Элементы имеют tagName() и ноль или более атрибутов, связанных с ними. Имя тега можно изменить с помощью setTagName().

Атрибуты элементов представлены объектами QDomAttr, которые можно запросить с помощью функций attribute() и attributeNode(). Вы можете установить атрибуты с помощью функций setAttribute() и setAttributeNode(). Атрибуты можно удалить с помощью removeAttribute(). Существуют аналогичные функции с поддержкой пространств имён, например, setAttributeNS(), setAttributeNodeNS() и removeAttributeNS().

Если вы хотите получить текст узла, используйте text(), например:

QDomElement e = //...
//...
QString s = e.text()

Функция text() работает рекурсивно, чтобы найти текст (поскольку не все элементы содержат текст). Если вы хотите найти весь текст во всех дочерних узлах, перебирайте дочерние узлы, ища узлы QDomText, например:

QString text;
QDomElement element = doc.documentElement();
for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling())
{
    QDomText t = n.toText();
    if (!t.isNull())
        text += t.data();
}

Обратите внимание, что мы пытаемся преобразовать каждый узел в текстовый узел и использовать text() вместо прямого использования firstChild().toText().data() или n.toText().data() на узле, потому что узел может не быть текстовым элементом.

Вы можете получить список всех потомков элемента, у которых есть указанное имя тега, с помощью elementsByTagName() или elementsByTagNameNS().

Чтобы просмотреть элементы документа dom, используйте firstChildElement(), lastChildElement(), nextSiblingElement() и previousSiblingElement(). Например, чтобы перебрать все дочерние элементы с именем «entry» в корневом элементе с именем «database», вы можете использовать:

QDomDocument doc = // ...
QDomElement root = doc.firstChildElement("database");
QDomElement elt = root.firstChildElement("entry");
for (; !elt.isNull(); elt = elt.nextSiblingElement("entry")) {
    // ...
}

Дополнительную информацию об объектной модели документа (DOM) см. на страницах Уровень 1 и Уровень 2 Core. Более общее введение в реализацию DOM см. в документации QDomDocument.

Документация по функциям-членам

QDomElement::QDomElement()

Создаёт пустой элемент. Используйте функцию QDomDocument::createElement(), чтобы создавать элементы с содержимым.

QDomElement::QDomElement(const QDomElement &x)

Создаёт копию x.

Данные копии объединены (копирование по ссылке): изменение одного узла также изменит другой. Если необходимо выполнить глубокое копирование, используйте cloneNode().

QString QDomElement::attribute(const QString &name, const QString &defValue = QString()) const

Возвращает атрибут с именем name. Если атрибут не существует, возвращается defValue.

См. также setAttribute(), attributeNode(), setAttributeNode() и attributeNS().

QString QDomElement::attributeNS(const QString nsURI, const QString &localName, const QString &defValue = QString()) const

Возвращает атрибут с локальным именем localName и URI пространства имён nsURI. Если атрибут не существует, возвращается defValue.

См. также setAttributeNS(), attributeNodeNS(), setAttributeNodeNS() и attribute().

QDomAttr QDomElement::attributeNode(const QString &name)

Возвращает объект QDomAttr, соответствующий атрибуту с именем name. Если такой атрибут не существует, возвращается нулевой атрибут.

См. также setAttributeNode(), attribute(), setAttribute() и attributeNodeNS().

QDomAttr QDomElement::attributeNodeNS(const QString &nsURI, const QString &localName)

Возвращает объект QDomAttr, соответствующий атрибуту с локальным именем localName и URI пространства имён nsURI. Если такой атрибут не существует, возвращается нулевой атрибут.

См. также setAttributeNodeNS(), setAttributeNode(), attribute() и setAttribute().

QDomNamedNodeMap QDomElement::attributes() const

Возвращает QDomNamedNodeMap, содержащий все атрибуты этого элемента.

См. также attribute(), setAttribute(), attributeNode() и setAttributeNode().

QDomNodeList QDomElement::elementsByTagName(const QString &tagname) const

Возвращает QDomNodeList, содержащий все дочерние элементы с именем tagname, обнаруженные во время обхода дерева элементов по порядку с этим элементом в качестве корня. Порядок элементов в возвращаемом списке — порядок их обнаружения во время обхода по порядку.

См. также elementsByTagNameNS() и QDomDocument::elementsByTagName().

QDomNodeList QDomElement::elementsByTagNameNS(const QString &nsURI, const QString &localName) const

Возвращает QDomNodeList, содержащий все дочерние элементы с локальным именем localName и URI пространства имён nsURI, обнаруженные во время обхода дерева элементов по порядку с этим элементом в качестве корня. Порядок элементов в возвращаемом списке — порядок их обнаружения во время обхода по порядку.

См. также elementsByTagName() и QDomDocument::elementsByTagNameNS().

bool QDomElement::hasAttribute(const QString &name) const

Возвращает true если у этого элемента есть атрибут с именем name; в противном случае возвращает false.

Примечание: Эта функция не учитывает наличие пространств имён. В результате указанное имя будет проверено на соответствие полному имени атрибута, включающему любые префиксы пространств имён, которые могут присутствовать.

Используйте hasAttributeNS(), чтобы явно проверить атрибуты со специфическими пространствами имён и именами.

bool QDomElement::hasAttributeNS(const QString &nsURI, const QString &localName) const

Возвращает true если у этого элемента есть атрибут с локальным именем localName и URI пространства имён nsURI; в противном случае возвращает false.

QDomNode::NodeType QDomElement::nodeType() const

Возвращает ElementNode.

void QDomElement::removeAttribute(const QString &name)

Удаляет атрибут с именем name из этого элемента.

См. также setAttribute(), attribute() и removeAttributeNS().

void QDomElement::removeAttributeNS(const QString &nsURI, const QString &localName)

Удаляет атрибут с локальным именем localName и URI пространства имён nsURI из этого элемента.

См. также setAttributeNS(), attributeNS() и removeAttribute().

QDomAttr QDomElement::removeAttributeNode(const QDomAttr &oldAttr)

Удаляет атрибут oldAttr из элемента и возвращает его.

См. также attributeNode() и setAttributeNode().

void QDomElement::setAttribute(const QString &name, const QString &value)

Добавляет атрибут с именем name и значением value. Если атрибут с таким же именем уже существует, его значение заменяется на value.

См. также attribute(), setAttributeNode() и setAttributeNS().

void QDomElement::setAttribute(const QString &name, qlonglong value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttribute(const QString &name, qulonglong value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttribute(const QString &name, int value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttribute(const QString &name, uint value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttribute(const QString &name, float value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttribute(const QString &name, double value)

Это перегруженный метод.

Число форматируется в соответствии с текущим языковым стандартом.

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, const QString &value)

Добавляет атрибут с квалифицированным именем qName и URI пространства имён nsURI со значением value. Если атрибут с тем же локальным именем и URI пространства имён уже существует, его префикс заменяется префиксом qName, а его значение — значением value.

Несмотря на то, что qName — квалифицированное имя, для определения, нужно ли заменить значение существующего атрибута, используется локальное имя.

См. также attributeNS(), setAttributeNodeNS() и setAttribute().

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, int value)

Это перегруженный метод.

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, uint value)

Это перегруженный метод.

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, qlonglong value)

Это перегруженный метод.

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, qulonglong value)

Это перегруженный метод.

void QDomElement::setAttributeNS(const QString nsURI, const QString &qName, double value)

Это перегруженный метод.

QDomAttr QDomElement::setAttributeNode(const QDomAttr &newAttr)

Добавляет атрибут newAttr к этому элементу.

Если у элемента уже есть атрибут с тем же именем, что и newAttr, эта функция заменяет его и возвращает его; в противном случае функция возвращает пустой атрибут.

См. также attributeNode(), setAttribute() и setAttributeNodeNS().

QDomAttr QDomElement::setAttributeNodeNS(const QDomAttr &newAttr)

Добавляет атрибут newAttr к этому элементу.

Если у элемента уже есть атрибут с тем же локальным именем и URI пространства имён, что и newAttr, эта функция заменяет его и возвращает его; в противном случае функция возвращает пустой атрибут.

См. также attributeNodeNS(), setAttributeNS() и setAttributeNode().

void QDomElement::setTagName(const QString &name)

Устанавливает имя тега этого элемента в name.

См. также tagName().

QString QDomElement::tagName() const

Возвращает имя тега этого элемента. Для XML-элемента, такого как:

<img src="myimg.png">

имя тега вернёт "img".

См. также setTagName().

QString QDomElement::text() const

Возвращает текст элемента или пустую строку.

Пример:

<h1>Hello <b>Qt</b> <![CDATA[<xml is cool>]]></h1>

Функция text() объекта QDomElement для тега <h1> вернёт следующий текст:

Hello Qt <xml is cool>

Комментарии этой функцией игнорируются. Она обрабатывает только объекты QDomText и QDomCDATASection.

QDomElement &QDomElement::operator=(const QDomElement &x)

Присваивает x этому элементу DOM.

Данные копии объединены (неглубокая копия): изменение одного узла также изменит другой. Если вам нужна глубокая копия, используйте cloneNode().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qdomelement.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API