Класс QDomNode
Класс QDomNode является базовым классом для всех узлов в дереве DOM. Подробнее...
| Заголовок: | #include <QDomNode> |
| qmake: | QT += xml |
| Наследуется от: | QDomAttr, QDomCharacterData, QDomDocument, QDomDocumentFragment, QDomDocumentType, QDomElement, QDomEntity, QDomEntityReference, QDomNotation и QDomProcessingInstruction |
Примечание: Все функции в этом классе являются реентерабельными.
Типы публичного доступа
| Перечисление | EncodingPolicy { EncodingFromDocument, EncodingFromTextStream } |
| Перечисление | NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode } |
Публичные функции
| QDomNode(const QDomNode &n) | |
| QDomNode() | |
| QDomNode & | operator=(const QDomNode &n) |
| ~QDomNode() | |
| QDomNode | appendChild(const QDomNode &newChild) |
| QDomNamedNodeMap | attributes() const |
| QDomNodeList | childNodes() const |
| void | clear() |
| QDomNode | cloneNode(bool deep = true) const |
| int | columnNumber() const |
| QDomNode | firstChild() const |
| QDomElement | firstChildElement(const QString &tagName = QString()) const |
| bool | hasAttributes() const |
| bool | hasChildNodes() const |
| QDomNode | insertAfter(const QDomNode &newChild, const QDomNode &refChild) |
| QDomNode | insertBefore(const QDomNode &newChild, const QDomNode &refChild) |
| bool | isAttr() const |
| bool | isCDATASection() const |
| bool | isCharacterData() const |
| bool | isComment() const |
| bool | isDocument() const |
| bool | isDocumentFragment() const |
| bool | isDocumentType() const |
| bool | isElement() const |
| bool | isEntity() const |
| bool | isEntityReference() const |
| bool | isNotation() const |
| bool | isNull() const |
| bool | isProcessingInstruction() const |
| bool | isSupported(const QString &feature, const QString &version) const |
| bool | isText() const |
| QDomNode | lastChild() const |
| QDomElement | lastChildElement(const QString &tagName = QString()) const |
| int | lineNumber() const |
| QString | localName() const |
| QDomNode | namedItem(const QString &name) const |
| QString | namespaceURI() const |
| QDomNode | nextSibling() const |
| QDomElement | nextSiblingElement(const QString &tagName = QString()) const |
| QString | nodeName() const |
| QDomNode::NodeType | nodeType() const |
| QString | nodeValue() const |
| void | normalize() |
| QDomDocument | ownerDocument() const |
| QDomNode | parentNode() const |
| QString | prefix() const |
| QDomNode | previousSibling() const |
| QDomElement | previousSiblingElement(const QString &tagName = QString()) const |
| QDomNode | removeChild(const QDomNode &oldChild) |
| QDomNode | replaceChild(const QDomNode &newChild, const QDomNode &oldChild) |
| void | save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const |
| void | setNodeValue(const QString &v) |
| void | setPrefix(const QString &pre) |
| QDomAttr | toAttr() const |
| QDomCDATASection | toCDATASection() const |
| QDomCharacterData | toCharacterData() const |
| QDomComment | toComment() const |
| QDomDocument | toDocument() const |
| QDomDocumentFragment | toDocumentFragment() const |
| QDomDocumentType | toDocumentType() const |
| QDomElement | toElement() const |
| QDomEntity | toEntity() const |
| QDomEntityReference | toEntityReference() const |
| QDomNotation | toNotation() const |
| QDomProcessingInstruction | toProcessingInstruction() const |
| QDomText | toText() const |
| bool | operator!=(const QDomNode &n) const |
| bool | operator==(const QDomNode &n) const |
Связанные нечлены
| QTextStream & | operator<<(QTextStream &str, const QDomNode &node) |
Подробное описание
Многие функции в DOM возвращают QDomNode.
Вы можете определить тип узла, используя isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() и isComment().
QDomNode можно преобразовать в один из его подклассов, используя toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() или toComment(). Вы можете преобразовать узел в нулевой узел с помощью clear().
Копии класса QDomNode совместно используют свои данные с помощью явного совместного использования. Это означает, что изменение одного узла изменит все копии. Это особенно полезно в сочетании с функциями, которые возвращают QDomNode, например, firstChild(). Вы можете создать независимую (глубокую) копию узла с помощью cloneNode().
QDomNode может быть нулевым, как и nullptr. Создание копии нулевого узла приводит к другому нулевому узлу. Невозможно изменить нулевой узел, но можно назначить другой, возможно, не нулевой узел. В этом случае копия нулевого узла останется нулевой. Вы можете проверить, является ли QDomNode нулевым, вызвав isNull(). Пустой конструктор QDomNode (или любого из производных классов) создаёт нулевой узел.
Узлы вставляются с помощью insertBefore(), insertAfter() или appendChild(). Вы можете заменить один узел другим, используя replaceChild(), и удалить узел с помощью removeChild().
Для обхода узлов используйте firstChild(), чтобы получить первый дочерний узел (если есть), и nextSibling(), чтобы перейти к следующему. QDomNode также предоставляет lastChild(), previousSibling() и parentNode(). Чтобы найти первый дочерний узел с определенным именем узла, используйте namedItem().
Чтобы узнать, содержит ли узел дочерние узлы, используйте hasChildNodes(), а чтобы получить список всех дочерних узлов узла, используйте childNodes().
Имя узла и значение (значение которого зависит от его типа) возвращаются методами nodeName() и nodeValue() соответственно. Тип узла возвращается методом nodeType(). Значение узла можно задать с помощью setNodeValue().
Документ, к которому принадлежит узел, возвращается методом ownerDocument().
Смежные узлы QDomText могут быть объединены в один узел с помощью normalize().
Узлы QDomElement имеют атрибуты, которые могут быть получены с помощью attributes().
Узлы QDomElement и QDomAttr могут иметь пространства имён, которые могут быть получены с помощью namespaceURI(). Их локальное имя возвращается методом localName(), а префикс — методом prefix(). Префикс можно задать с помощью setPrefix().
Вы можете записать XML-представление узла в поток текста с помощью save().
Следующий пример ищет первый элемент в XML-документе и печатает имена всех элементов, являющихся его непосредственными дочерними элементами.
QDomDocument d;
d.setContent(someXML);
QDomNode n = d.firstChild();
while (!n.isNull()) {
if (n.isElement()) {
QDomElement e = n.toElement();
cout << "Element name: " << e.tagName() << Qt::endl;
break;
}
n = n.nextSibling();
} Дополнительную информацию о Document Object Model см. на страницах Level 1 и Level 2 Core. Более общее введение в реализацию DOM см. в документации QDomDocument.
Документация типов членов
enum QDomNode::EncodingPolicy
Этот перечисление определяет, как QDomNode::save() определяет кодировку для сериализации.
| Константа | Значение | Описание |
|---|---|---|
QDomNode::EncodingFromDocument |
1 |
Кодировка извлекается из документа. |
QDomNode::EncodingFromTextStream |
2 |
Кодировка извлекается из QTextStream. |
Этот перечисление был введён или изменён в Qt 4.3.
См. также QDomNode::save().
enum QDomNode::NodeType
Это перечисление определяет тип узла:
| Константа | Значение | Описание |
|---|---|---|
QDomNode::ElementNode |
1 |
|
QDomNode::AttributeNode |
2 |
|
QDomNode::TextNode |
3 |
|
QDomNode::CDATASectionNode |
4 |
|
QDomNode::EntityReferenceNode |
5 |
|
QDomNode::EntityNode |
6 |
|
QDomNode::ProcessingInstructionNode |
7 |
|
QDomNode::CommentNode |
8 |
|
QDomNode::DocumentNode |
9 |
|
QDomNode::DocumentTypeNode |
10 |
|
QDomNode::DocumentFragmentNode |
11 |
|
QDomNode::NotationNode |
12 |
|
QDomNode::BaseNode |
21 |
Объект QDomNode, то есть не подкласс QDomNode. |
QDomNode::CharacterDataNode |
22 |
Документация функций-членов
QDomNode::QDomNode(const QDomNode &n)
Создает копию n.
Данные копии совместно используются (копия по ссылке): изменение одного узла также изменит другой. Если вы хотите сделать глубокую копию, используйте cloneNode().
QDomNode::QDomNode()
Создаёт нулевой узел.
QDomNode &QDomNode::operator=(const QDomNode &n)
Присваивает копию n этому узлу DOM.
Данные копии совместно используются (копия по ссылке): изменение одного узла также изменит другой. Если вы хотите сделать глубокую копию, используйте cloneNode().
QDomNode::~QDomNode()
Уничтожает объект и освобождает его ресурсы.
QDomNode QDomNode::appendChild(const QDomNode &newChild)
Добавляет newChild в качестве последнего дочернего узла.
Если newChild является дочерним узлом другого узла, он переродится в этот узел. Если newChild является дочерним узлом этого узла, тогда его положение в списке дочерних узлов изменяется.
Если newChild является QDomDocumentFragment, то дочерние узлы фрагмента удаляются из фрагмента и добавляются.
Если newChild — это QDomElement, а этот узел — QDomDocument, который уже имеет элемент узла в качестве дочернего элемента, то newChild не добавляется в качестве дочернего элемента, и возвращается узел null.
Возвращает новую ссылку на newChild при успехе или узел null при ошибке.
Вызов этой функции для узла null (созданного, например, с помощью конструктора по умолчанию) ничего не делает и возвращает узел null.
Спецификация DOM запрещает вставку узлов атрибутов, но по историческим причинам QDom их принимает.
См. также insertBefore(), insertAfter(), replaceChild() и removeChild().
QDomNamedNodeMap QDomNode::attributes() const
Возвращает карту именованных узлов всех атрибутов. Атрибуты предоставляются только для QDomElement.
Изменение атрибутов в карте также изменит атрибуты этого QDomNode.
QDomNodeList QDomNode::childNodes() const
Возвращает список всех непосредственных дочерних узлов.
Чаще всего вы будете вызывать эту функцию для объекта QDomElement.
Например, если XML-документ выглядит так:
<body> <h1>Heading</h1> <p>Hello <b>you</b></p> </body>
Тогда список дочерних узлов для элемента "body" будет содержать узел, созданный тэгом <h1>, и узел, созданный тэгом <p>.
Узлы в списке не копируются; изменение узлов в списке также изменит дочерние элементы этого узла.
См. также firstChild() и lastChild().
void QDomNode::clear()
Преобразует узел в узел null; если это не был узел null ранее, его тип и содержимое удаляются.
См. также isNull().
QDomNode QDomNode::cloneNode(bool deep = true) const
Создаёт глубокую (а не поверхностную) копию QDomNode.
Если deep равно true, то клонирование выполняется рекурсивно, что означает, что все дочерние узлы также копируются глубоко. Если deep равно false, копируется только сам узел, и у копии не будет дочерних узлов.
int QDomNode::columnNumber() const
Для узлов, созданных с помощью QDomDocument::setContent(), эта функция возвращает номер столбца в XML-документе, где узел был проанализирован. В противном случае возвращается -1.
Эта функция была добавлена в Qt 4.1.
См. также lineNumber() и QDomDocument::setContent().
QDomNode QDomNode::firstChild() const
Возвращает первого дочернего узла. Если дочернего узла нет, возвращается узел null. Изменение возвращаемого узла также изменит узел в дереве документа.
См. также lastChild() и childNodes().
QDomElement QDomNode::firstChildElement(const QString &tagName = QString()) const
Возвращает первый дочерний элемент с именем тэга tagName, если tagName не пустое; в противном случае возвращает первый дочерний элемент. Возвращает null-элемент, если такой элемент не существует.
См. также lastChildElement(), previousSiblingElement() и nextSiblingElement().
bool QDomNode::hasAttributes() const
Возвращает true, если узел имеет атрибуты; в противном случае возвращает false.
См. также attributes().
bool QDomNode::hasChildNodes() const
Возвращает true, если узел имеет один или несколько дочерних элементов; в противном случае возвращает false.
QDomNode QDomNode::insertAfter(const QDomNode &newChild, const QDomNode &refChild)
Вставляет узел newChild после дочернего узла refChild. refChild должен быть непосредственным потомком этого узла. Если refChild равен null, то newChild добавляется как последний дочерний узел этого узла.
Если newChild является потомком другого узла, он переназначается этому узлу. Если newChild является потомком этого узла, то его позиция в списке потомков изменяется.
Если newChild — это QDomDocumentFragment, то дочерние элементы фрагмента удаляются из фрагмента и вставляются после refChild.
Возвращает новую ссылку на newChild при успехе или узел null при ошибке.
Спецификация DOM запрещает вставку узлов атрибутов, но по историческим причинам QDom их все же принимает.
См. также insertBefore(), replaceChild(), removeChild() и appendChild().
QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)
Вставляет узел newChild перед дочерним узлом refChild. refChild должен быть непосредственным потомком этого узла. Если refChild равен null, то newChild вставляется в качестве первого дочернего узла.
Если newChild является потомком другого узла, он переназначается этому узлу. Если newChild является потомком этого узла, то его позиция в списке потомков изменяется.
Если newChild — это QDomDocumentFragment, то дочерние элементы фрагмента удаляются из фрагмента и вставляются перед refChild.
Возвращает новую ссылку на newChild при успехе или узел null при ошибке.
Спецификация DOM запрещает вставку узлов атрибутов, но по историческим причинам QDom их все же принимает.
См. также insertAfter(), replaceChild(), removeChild() и appendChild().
bool QDomNode::isAttr() const
Возвращает true, если узел является атрибутом; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomAttribute; вы можете получить QDomAttribute с помощью toAttribute().
См. также toAttr().
bool QDomNode::isCDATASection() const
Возвращает true, если узел является секцией CDATA; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomCDATASection; вы можете получить QDomCDATASection с помощью toCDATASection().
См. также toCDATASection().
bool QDomNode::isCharacterData() const
Возвращает true, если узел является узлом данных символов; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomCharacterData; вы можете получить QDomCharacterData с помощью toCharacterData().
См. также toCharacterData().
bool QDomNode::isComment() const
Возвращает true, если узел является комментарием; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomComment; вы можете получить QDomComment с помощью toComment().
См. также toComment().
bool QDomNode::isDocument() const
Возвращает true, если узел является документом; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomDocument; вы можете получить QDomDocument с помощью toDocument().
См. также toDocument().
bool QDomNode::isDocumentFragment() const
Возвращает true, если узел является фрагментом документа; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomDocumentFragment; вы можете получить QDomDocumentFragment с помощью toDocumentFragment().
См. также toDocumentFragment().
bool QDomNode::isDocumentType() const
Возвращает true, если узел является типом документа; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomDocumentType; вы можете получить QDomDocumentType с помощью toDocumentType().
См. также toDocumentType().
END_OF_DOCUMENT_MARKERbool QDomNode::isElement() const
Возвращает true, если узел является элементом; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomElement; вы можете получить QDomElement с помощью toElement().
См. также toElement().
bool QDomNode::isEntity() const
Возвращает true, если узел является сущностью; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomEntity; вы можете получить QDomEntity с помощью toEntity().
См. также toEntity().
bool QDomNode::isEntityReference() const
Возвращает true, если узел является ссылкой на сущность; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomEntityReference; вы можете получить QDomEntityReference с помощью toEntityReference().
См. также toEntityReference().
bool QDomNode::isNotation() const
Возвращает true, если узел является обозначением; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomNotation; вы можете получить QDomNotation с помощью toNotation().
См. также toNotation().
bool QDomNode::isNull() const
Возвращает true, если этот узел null (т. е. если он не имеет типа или содержимого); в противном случае возвращает false.
bool QDomNode::isProcessingInstruction() const
Возвращает true, если узел является инструкцией обработки; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomProcessingInstruction; вы можете получить QProcessingInstruction с помощью toProcessingInstruction().
См. также toProcessingInstruction().
bool QDomNode::isSupported(const QString &feature, const QString &version) const
Возвращает true, если реализация DOM реализует функцию feature и эта функция поддерживается этим узлом в версии version; в противном случае возвращает false.
См. также QDomImplementation::hasFeature().
bool QDomNode::isText() const
Возвращает true, если узел является текстовым узлом; в противном случае возвращает false.
Если эта функция возвращает true, это не означает, что этот объект является QDomText; вы можете получить QDomText с помощью toText().
См. также toText().
QDomNode QDomNode::lastChild() const
Возвращает последнего дочернего узла. Если дочерних узлов нет, возвращается null-узел. Изменение возвращенного узла также изменит узел в дереве документа.
См. также firstChild() и childNodes().
QDomElement QDomNode::lastChildElement(const QString &tagName = QString()) const
Возвращает последний дочерний элемент с именем тега tagName, если tagName не пустое; в противном случае возвращает последний дочерний элемент. Возвращает null-элемент, если такой элемент не существует.
См. также firstChildElement(), previousSiblingElement() и nextSiblingElement().
int QDomNode::lineNumber() const
Для узлов, созданных с помощью QDomDocument::setContent(), эта функция возвращает номер строки в документе XML, где узел был проанализирован. В противном случае возвращается -1.
Эта функция была добавлена в Qt 4.1.
См. также columnNumber() и QDomDocument::setContent().
QString QDomNode::localName() const
Если узел использует пространства имён, эта функция возвращает локальное имя узла; в противном случае возвращает пустую строку.
Только узлы типа ElementNode или AttributeNode могут иметь пространства имён. Пространство имён должно быть указано при создании; его нельзя добавить позже.
См. также prefix(), namespaceURI(), QDomDocument::createElementNS() и QDomDocument::createAttributeNS().
QDomNode QDomNode::namedItem(const QString &name) const
Возвращает первый непосредственный дочерний узел, для которого nodeName() равно name.
Если такого непосредственного дочернего узла нет, возвращается null-узел.
См. также nodeName().
QString QDomNode::namespaceURI() const
Возвращает URI пространства имён этого узла или пустую строку, если узел не имеет URI пространства имён.
Только узлы типа ElementNode или AttributeNode могут иметь пространства имён. URI пространства имён должен быть указан при создании и не может быть изменён позже.
См. также prefix(), localName(), QDomDocument::createElementNS() и QDomDocument::createAttributeNS().
QDomNode QDomNode::nextSibling() const
Возвращает следующего брата в дереве документа. Изменение возвращенного узла также изменит узел в дереве документа.
Если у вас есть XML, подобный этому:
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
и этот QDomNode представляет тег <p>, nextSibling() вернет узел, представляющий тег <h2>.
См. также previousSibling().
QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString()) const
Возвращает следующий брат-элемент с именем тега tagName, если tagName не пустое; в противном случае возвращает любой следующий брат-элемент. Возвращает null-элемент, если такой элемент не существует.
См. также firstChildElement(), previousSiblingElement() и lastChildElement().
QString QDomNode::nodeName() const
Возвращает имя узла.
Значение имени зависит от подкласса:
| Имя | Значение |
|---|---|
| QDomAttr | Имя атрибута |
| QDomCDATASection | Строка "#cdata-section" |
| QDomComment | Строка "#comment" |
| QDomDocument | Строка "#document" |
| QDomDocumentFragment | Строка "#document-fragment" |
| QDomDocumentType | Имя типа документа |
| QDomElement | Имя тега |
| QDomEntity | Имя сущности |
| QDomEntityReference | Имя сущности-ссылки |
| QDomNotation | Имя обозначения |
| QDomProcessingInstruction | Целевое значение инструкции обработки |
| QDomText | Строка "#text" |
Примечание: Эта функция не учитывает наличие пространств имён при обработке имён узлов элементов и атрибутов. В результате возвращаемое имя может содержать любые префиксы пространств имён, которые могут быть присутствовать. Для получения имени узла элемента или атрибута используйте localName; для получения префикса пространства имён используйте namespaceURI().
См. также nodeValue().
QDomNode::NodeType QDomNode::nodeType() const
Возвращает тип узла.
См. также toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData(), и toComment().
QString QDomNode::nodeValue() const
Возвращает значение узла.
Значение зависит от подкласса:
| Имя | Значение |
|---|---|
| QDomAttr | Значение атрибута |
| QDomCDATASection | Содержимое раздела CDATA |
| QDomComment | Комментарий |
| QDomProcessingInstruction | Данные инструкции обработки |
| QDomText | Текст |
Все остальные подклассы не имеют значения узла и возвращают пустую строку.
См. также setNodeValue() и nodeName().
void QDomNode::normalize()
Вызов normalize() для элемента преобразует все его дочерние элементы в стандартную форму. Это означает, что смежные объекты QDomText будут объединены в один текстовый объект (QDomCDATASection узлы не объединяются).
QDomDocument QDomNode::ownerDocument() const
Возвращает документ, к которому принадлежит этот узел.
QDomNode QDomNode::parentNode() const
Возвращает родительский узел. Если у этого узла нет родителя, возвращается узел null (то есть узел, для которого isNull() возвращает true).
QString QDomNode::prefix() const
Возвращает префикс пространства имён узла или пустую строку, если у узла нет префикса пространства имён.
Только узлы типа ElementNode или AttributeNode могут иметь пространства имён. Префикс пространства имён должен быть указан при создании. Если узел был создан с префиксом пространства имён, вы можете изменить его позже с помощью setPrefix().
Если вы создаете элемент или атрибут с помощью QDomDocument::createElement() или QDomDocument::createAttribute(), префикс будет пустой строкой. Если вы используете QDomDocument::createElementNS() или QDomDocument::createAttributeNS() вместо этого, префикс не будет пустой строкой; но он может быть пустой строкой, если имя не имеет префикса.
См. также setPrefix(), localName(), namespaceURI(), QDomDocument::createElementNS(), и QDomDocument::createAttributeNS().
QDomNode QDomNode::previousSibling() const
Возвращает предыдущего сиблинга в дереве документов. Изменение возвращаемого узла также изменит узел в дереве документов.
Например, если у вас есть XML, подобный этому:
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
и этот QDomNode представляет тег <p>, previousSibling() вернёт узел, представляющий тег <h1>.
См. также nextSibling().
QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString()) const
Возвращает предыдущий элемент-сиблинг с именем тега tagName, если tagName не пустая; в противном случае возвращает любой предыдущий элемент-сиблинг. Возвращает null-элемент, если такой сиблинг не существует.
См. также firstChildElement(), nextSiblingElement(), и lastChildElement().
QDomNode QDomNode::removeChild(const QDomNode &oldChild)
Удаляет oldChild из списка дочерних элементов. oldChild должен быть прямым потомком этого узла.
Возвращает новую ссылку на oldChild при успехе или null-узел при неудаче.
См. также insertBefore(), insertAfter(), replaceChild(), и appendChild().
QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)
Заменяет oldChild на newChild. oldChild должен быть прямым потомком этого узла.
Если newChild является потомком другого узла, она переродится в этот узел. Если newChild является потомком этого узла, тогда её позиция в списке дочерних элементов изменяется.
Если newChild является QDomDocumentFragment, тогда oldChild заменяется всеми потомками фрагмента.
Возвращает новую ссылку на oldChild при успехе или null-узел при неудаче.
См. также insertBefore(), insertAfter(), removeChild(), и appendChild().
void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const
Записывает XML-представление узла и всех его потомков в поток stream. Эта функция использует indent как количество пробелов для отступа узла.
Если документ содержит недопустимые символы XML или символы, которые не могут быть закодированы в заданной кодировке, результат и поведение не определены.
Если encodingPolicy равен QDomNode::EncodingFromDocument и этот узел является узлом документа, кодировка текстового потока stream устанавливается путем обработки инструкции обработки с именем "xml" как XML-объявления, если оно существует, в противном случае по умолчанию используется UTF-8. XML-объявления не являются инструкциями обработки, но такое поведение существует по историческим причинам. Если этот узел не является узлом документа, используется кодировка текстового потока.
Если encodingPolicy равен EncodingFromTextStream и этот узел является узлом документа, эта функция ведет себя как save(QTextStream &str, int indent) за исключением того, что используется кодировка, указанная в текстовом потоке stream.
Если документ содержит недопустимые символы XML или символы, которые не могут быть закодированы в заданной кодировке, результат и поведение не определены.
Эта функция была добавлена в Qt 4.2.
void QDomNode::setNodeValue(const QString &v)
Устанавливает значение узла в v.
См. также nodeValue().
void QDomNode::setPrefix(const QString &pre)
Если у узла есть префикс пространства имен, эта функция изменяет префикс пространства имен узла на pre. В противном случае эта функция ничего не делает.
Только узлы типа ElementNode или AttributeNode могут иметь пространства имён. Префикс пространства имён должен быть указан при создании; добавить префикс пространства имен после создания невозможно.
См. также prefix(), localName(), namespaceURI(), QDomDocument::createElementNS(), и QDomDocument::createAttributeNS().
QDomAttr QDomNode::toAttr() const
Преобразует QDomNode в QDomAttr. Если узел не является атрибутом, возвращаемый объект будет null.
См. также isAttr().
QDomCDATASection QDomNode::toCDATASection() const
Преобразует QDomNode в QDomCDATASection. Если узел не является разделом CDATA, возвращаемый объект будет null.
См. также isCDATASection().
QDomCharacterData QDomNode::toCharacterData() const
Преобразует QDomNode в QDomCharacterData. Если узел не является узлом данных символов, возвращаемый объект будет null.
См. также isCharacterData().
QDomComment QDomNode::toComment() const
Преобразует QDomNode в QDomComment. Если узел не является комментарием, возвращаемый объект будет null.
См. также isComment().
QDomDocument QDomNode::toDocument() const
Преобразует QDomNode в QDomDocument. Если узел не является документом, возвращаемый объект будет null.
См. также isDocument().
QDomDocumentFragment QDomNode::toDocumentFragment() const
Преобразует QDomNode в QDomDocumentFragment. Если узел не является фрагментом документа, возвращаемый объект будет null.
См. также isDocumentFragment().
QDomDocumentType QDomNode::toDocumentType() const
Преобразует QDomNode в QDomDocumentType. Если узел не является типом документа, возвращаемый объект будет null.
См. также isDocumentType().
QDomElement QDomNode::toElement() const
Преобразует QDomNode в QDomElement. Если узел не является элементом, возвращаемый объект будет null.
См. также isElement().
QDomEntity QDomNode::toEntity() const
Преобразует QDomNode в QDomEntity. Если узел не является сущностью, возвращаемый объект будет null.
См. также isEntity().
QDomEntityReference QDomNode::toEntityReference() const
Преобразует QDomNode в QDomEntityReference. Если узел не является ссылкой на сущность, возвращаемый объект будет null.
См. также isEntityReference().
QDomNotation QDomNode::toNotation() const
Преобразует QDomNode в QDomNotation. Если узел не является обозначением, возвращаемый объект будет null.
См. также isNotation().
QDomProcessingInstruction QDomNode::toProcessingInstruction() const
Преобразует QDomNode в QDomProcessingInstruction. Если узел не является инструкцией обработки, возвращаемый объект будет null.
См. также isProcessingInstruction().
QDomText QDomNode::toText() const
Преобразует QDomNode в QDomText. Если узел не является текстом, возвращаемый объект будет null.
См. также isText().
bool QDomNode::operator!=(const QDomNode &n) const
Возвращает true, если n и этот узел DOM не равны; в противном случае возвращает false.
bool QDomNode::operator==(const QDomNode &n) const
Возвращает true, если n и этот узел DOM равны; в противном случае возвращает false.
Любой экземпляр QDomNode действует как ссылка на базовую структуру данных в QDomDocument. Проверка на равенство проверяет, указывают ли две ссылки на один и тот же базовый узел. Например:
QDomDocument document; QDomElement element1 = document.documentElement(); QDomElement element2 = element1;
Оба узла (QDomElement — подкласс QDomNode) ссылаются на корневой элемент документа, и element1 == element2 вернёт true. С другой стороны:
QDomElement element3 = document.createElement("MyElement");
QDomElement element4 = document.createElement("MyElement"); Несмотря на то, что оба узла являются пустыми элементами с одинаковым именем, element3 == element4 вернёт false, потому что они ссылаются на два разных узла в базовой структуре данных.
Связанные нечлены
QTextStream &operator<<(QTextStream &str, const QDomNode &node)
Записывает XML-представление узла node и всех его дочерних узлов в поток str.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qdomnode.html