Spec-Zone.ru › Qt 6.0

Класс QDomNode

Класс QDomNode является базовым классом для всех узлов в дереве DOM. Подробнее...

Заголовок: #include <QDomNode>
CMake: find_package(Qt6 COMPONENTS Xml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Xml)
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 QString &namespaceURI = 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 QString &namespaceURI = 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 &namespaceURI = 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 QString &namespaceURI = 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

Related Non-Members

QTextStream & operator<<(QTextStream &str, const QDomNode &node)

Detailed Description

Многие функции 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;
QString someXML;

d.setContent(someXML);
QDomNode n = d.firstChild();
while (!n.isNull()) {
    if (n.isElement()) {
        QDomElement e = n.toElement();
        cout << "Element name: " << qPrintable(e.tagName()) << '\n';
        break;
    }
    n = n.nextSibling();
}

Дополнительную информацию о Document Object Model см. на уровне 1 и уровне 2 Core. Для более общего введения в реализацию DOM см. документацию QDomDocument.

Member Type Documentation

enum QDomNode::EncodingPolicy

Этот перечисление определяет, как QDomNode::save() определяет, какое кодирование использовать при сериализации.

Constant Value Description
QDomNode::EncodingFromDocument 1 Кодирование берётся из документа.
QDomNode::EncodingFromTextStream 2 Кодирование берётся из QTextStream.

См. такжеQDomNode::save().

enum QDomNode::NodeType

Это перечисление определяет тип узла:

Constant Value Description
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

Member Function Documentation

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" будет содержать узел, созданный тегом &lt;h1&gt;, и узел, созданный тегом &lt;p&gt;.

Узлы в списке не копируются; поэтому изменение узлов в списке также изменит дочерние элементы этого узла.

См. также 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.

См. также lineNumber() и QDomDocument::setContent().

QDomNode QDomNode::firstChild() const

Возвращает первого дочернего узла. Если дочерних узлов нет, возвращается узел null. Изменение возвращаемого узла также изменит узел в дереве документа.

См. также lastChild() и childNodes().

QDomElement QDomNode::firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Возвращает первый дочерний элемент с именем тега tagName и URI пространства имён namespaceURI. Если tagName пусто, возвращает первый дочерний элемент с namespaceURI, и если namespaceURI пусто, возвращает первый дочерний элемент с tagName. Если оба параметра пусты, возвращает первый дочерний элемент. Возвращает нулевой элемент, если такого дочернего элемента не существует.

См. также 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().

bool 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 , если этот узел является пустым (т.е. если у него нет типа или содержимого); в противном случае возвращает 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

Возвращает последнего дочернего узла. Если дочерних узлов нет, возвращается пустой узел. Изменение возвращаемого узла также изменит узел в дереве документа.

См. также firstChild() и childNodes().

QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Возвращает последний дочерний элемент с именем тега tagName и URI пространства имён namespaceURI. Если tagName пустое, возвращает последний дочерний элемент с namespaceURI, и если namespaceURI пустое, возвращает последний дочерний элемент с tagName. Если оба параметра пусты, возвращает последний дочерний элемент. Возвращает пустой элемент, если такого дочернего элемента не существует.

См. также firstChildElement(), previousSiblingElement() и nextSiblingElement().

int QDomNode::lineNumber() const

Для узлов, созданных с помощью QDomDocument::setContent(), эта функция возвращает номер строки в документе XML, где был проанализирован узел. В противном случае возвращается -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.

Если такого непосредственного дочернего узла нет, возвращается пустой узел.

См. также 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 QString &namespaceURI = QString()) const

Возвращает следующий элемент-брата с именем тега tagName и URI пространства имён namespaceURI. Если tagName пустое, возвращает следующий элемент-брата с namespaceURI, и если namespaceURI пустое, возвращает следующий элемент-брат с tagName. Если оба параметра пусты, возвращает следующий элемент-брата. Возвращает пустой элемент, если такого брата не существует.

См. также 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

Возвращает родительский узел. Если у этого узла нет родителя, возвращается нулевой узел (т.е. узел, для которого 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 представляет тег &lt;p&gt;, предыдущийSibling() вернёт узел, представляющий тег &lt;h1&gt;.

См. также nextSibling().

QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Возвращает предыдущий элемент-брата с именем тега tagName и URI пространства имён namespaceURI. Если tagName пустое, возвращает предыдущий элемент-брат с namespaceURI, и если namespaceURI пустое, возвращает предыдущий элемент-брат с tagName. Если оба параметра пусты, возвращает предыдущий элемент-брат. Возвращает нулевой элемент, если такого брата не существует.

См. также firstChildElement(), nextSiblingElement(), и lastChildElement().

QDomNode QDomNode::removeChild(const QDomNode &oldChild)

Удаляет oldChild из списка дочерних элементов. oldChild должен быть прямым потомком этого узла.

Возвращает новую ссылку на oldChild при успехе или нулевой узел при неудаче.

См. также insertBefore(), insertAfter(), replaceChild(), и appendChild().

QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)

Заменяет oldChild на newChild. oldChild должен быть прямым потомком этого узла.

Если newChild является потомком другого узла, он переносится в этот узел. Если newChild является потомком этого узла, то его позиция в списке потомков изменяется.

Если newChild является QDomDocumentFragment, то oldChild заменяется всеми потомками фрагмента.

Возвращает новую ссылку на oldChild при успехе или нулевой узел при неудаче.

См. также 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-символы или символы, которые не могут быть закодированы в заданной кодировке, результат и поведение не определены.

void QDomNode::setNodeValue(const QString &v)

Устанавливает значение узла на v.

См. также nodeValue().

END_OF_DOCUMENT_MARKER

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-6.0/qdomnode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API