Класс 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