Класс 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) |
| void | removeAttributeNS(const QString &nsURI, const QString &localName) |
| QDomAttr | removeAttributeNode(const QDomAttr &oldAttr) |
| void | setAttribute(const QString &name, const QString &value) |
| void | setAttribute(const QString &name, qlonglong value) |
| void | setAttribute(const QString &name, qulonglong value) |
| void | setAttribute(const QString &name, int value) |
| void | setAttribute(const QString &name, uint value) |
| void | setAttribute(const QString &name, float value) |
| void | setAttribute(const QString &name, double value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, const QString &value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, int value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, uint value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, qlonglong value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, qulonglong value) |
| void | setAttributeNS(const QString nsURI, const QString &qName, double value) |
| QDomAttr | setAttributeNode(const QDomAttr &newAttr) |
| QDomAttr | setAttributeNodeNS(const QDomAttr &newAttr) |
| void | setTagName(const QString &name) |
| QString | tagName() const |
| QString | text() const |
| QDomElement & | operator=(const QDomElement &x) |
- 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")) {
// ...
} Для получения дополнительной информации о модели объекта документа см. Уровень 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, эта функция заменяет этот атрибут и возвращает его; в противном случае функция возвращает атрибут null.
См. также attributeNode(), setAttribute() и setAttributeNodeNS().
QDomAttr QDomElement::setAttributeNodeNS(const QDomAttr &newAttr)
Добавляет атрибут newAttr к этому элементу.
Если у элемента есть другой атрибут с тем же локальным именем и URI пространства имён, что и newAttr, эта функция заменяет этот атрибут и возвращает его; в противном случае функция возвращает атрибут null.
См. также 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/archives/qt-5.6/qdomelement.html