Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Описание класса QDomElement
[модуль QtXml]

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

 #include <QDomElement>

Унаследован от 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.nextSiblingElelement("entry")) {
     // ...
 }

Для получения дополнительной информации о Document Object Model смотрите спецификации Уровень 1 и Уровень 2. Для того, чтобы больше узнать о реализации 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, int value )

Это перегруженная функция, предоставленная для удобства.

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

Это перегруженная функция, предоставленная для удобства.

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

Это перегруженная функция, предоставленная для удобства.

void QDomElement::setAttribute ( const QString & name, qulonglong 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 &lt;xml is cool&gt;

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

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

Ассоциирует x с текущим элементом DOM.

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


Copyright © 2008 Trolltech Торговые марки
Qt 4.3.5