Класс QDomElement
Класс QDomElement представляет собой один элемент в дереве DOM. Подробнее...
| Заголовок: | #include <QDomElement> |
| qmake: | QT += xml |
| Наследуется от: | QDomNode |
Примечание: Все функции в этом классе являются повторно-входными.
Публичные функции
| QDomElement(const QDomElement &x) | |
| QDomElement() | |
| QDomElement & | operator=(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) |
Подробное описание
Элементы имеют 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(const QDomElement &x)
Создает копию x.
Данные копии разделяются (копия по ссылке): изменение одного узла также изменит другой. Если вы хотите создать глубокую копию, используйте cloneNode().
QDomElement::QDomElement()
Создаёт пустой элемент. Используйте функцию QDomDocument::createElement() для создания элементов с содержимым.
QDomElement &QDomElement::operator=(const QDomElement &x)
Присваивает x этому элементу DOM.
Данные копии разделяются (неглубокая копия): изменение одного узла также изменит другой. Если вам нужна глубокая копия, используйте 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)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
void QDomElement::setAttribute(const QString &name, qulonglong value)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
void QDomElement::setAttribute(const QString &name, int value)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
void QDomElement::setAttribute(const QString &name, uint value)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
void QDomElement::setAttribute(const QString &name, float value)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
void QDomElement::setAttribute(const QString &name, double value)
Это перегруженная функция.
Форматирование всегда использует QLocale::C.
END_OF_DOCUMENT_MARKERvoid 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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qdomelement.html