Описание класса QDomElement [модуль QtXml]
Класс QDomElement представляет один элемент в дереве DOM. Далее...
#include <QDomElement> Унаследован от 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, int value )
- void setAttribute ( const QString & name, uint value )
- void setAttribute ( const QString & name, qlonglong value )
- void setAttribute ( const QString & name, qulonglong 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 )
- 66 открытых функций, унаследованных от 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.
Возвращает 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 <xml is cool>
В этой функции комментарии игнорируются. Она учитывает только объекты QDomText и QDomCDATASection.
QDomElement & QDomElement::operator= ( const QDomElement & x )
Ассоциирует x с текущим элементом DOM.
Данные в копиях общие (поверхностное копирование): изменение одного узла повлечет за собой изменение другого. Если вы хотите использовать глубокое копирование, воспользуйтесь cloneNode().
|