QDomNode Class

QDomNode 클래스는 DOM 트리의 모든 노드에 대한 기본 클래스입니다. 더 보기...

헤더: #include <QDomNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml
상속 대상:
10 유형

QDomAttr, QDomCharacterData, QDomDocument, QDomDocumentFragment, QDomDocumentType, QDomElement, QDomEntity, QDomEntityReference, QDomNotation, 그리고 QDomProcessingInstruction

참고: 이 클래스의 모든 함수는 재진입합니다.

공용 유형

enum EncodingPolicy { EncodingFromDocument, EncodingFromTextStream }
enum NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode }

공용 함수

QDomNode()
QDomNode(const QDomNode &node)
~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 &value)
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 &other) const
QDomNode &operator=(const QDomNode &other)
bool operator==(const QDomNode &other) const
QTextStream &operator<<(QTextStream &str, const QDomNode &node)

상세 설명

DOM의 많은 함수는 QDomNode를 반환합니다.

isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() 및 isComment()를 사용하여 노드의 유형을 확인할 수 있습니다.

toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() 또는 toComment()를 사용하여 QDomNode를 해당 하위 클래스 중 하나로 변환할 수 있습니다. clear ()를 사용하여 노드를 널 노드로 변환할 수 있습니다.

QDomNode 클래스의 복사본은 명시적 공유를 사용하여 데이터를 공유합니다. 즉, 한 노드를 수정하면 모든 복사본이 변경됩니다. 이는 firstChild()와 같이 QDomNode를 반환하는 함수와 함께 사용할 때 특히 유용합니다. cloneNode ()를 사용하여 노드의 독립적인(심층) 복사본을 만들 수 있습니다.

QDomNode는 nullptr 와 같이 널일 수 있습니다. 널 노드의 복사본을 만들면 또 다른 널 노드가 생성됩니다. 널 노드를 수정할 수는 없지만 널 노드가 아닌 다른 노드를 할당할 수는 있습니다. 이 경우 널 노드의 복사본은 널 노드로 유지됩니다. isNull ()를 호출하여 QDomNode가 널인지 확인할 수 있습니다. 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()로 설정할 수 있습니다.

save()를 사용하여 노드의 XML 표현을 텍스트 스트림에 쓸 수 있습니다.

다음 예는 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();
}

문서 객체 모델에 대한 자세한 내용은 레벨 1레벨 2 코어를 참조하세요. DOM 구현에 대한 보다 일반적인 소개는 QDomDocument 문서를 참조하세요.

멤버 유형 문서

enum QDomNode::EncodingPolicy

이 열거형은 QDomNode::save()가 직렬화할 때 사용할 인코딩을 결정하는 방법을 지정합니다.

Constant설명
QDomNode::EncodingFromDocument1문서에서 인코딩을 가져옵니다.
QDomNode::EncodingFromTextStream2인코딩은 QTextStream 에서 가져옵니다.

QDomNode::save()도 참조하세요 .

enum QDomNode::NodeType

이 열거형은 노드의 유형을 정의합니다:

상수설명
QDomNode::ElementNode1
QDomNode::AttributeNode2
QDomNode::TextNode3
QDomNode::CDATASectionNode4
QDomNode::EntityReferenceNode5
QDomNode::EntityNode6
QDomNode::ProcessingInstructionNode7
QDomNode::CommentNode8
QDomNode::DocumentNode9
QDomNode::DocumentTypeNode10
QDomNode::DocumentFragmentNode11
QDomNode::NotationNode12
QDomNode::BaseNode21QDomNode 객체, 즉 QDomNode 서브클래스가 아닙니다.
QDomNode::CharacterDataNode22

멤버 함수 문서

QDomNode::QDomNode()

null 노드를 생성합니다.

QDomNode::QDomNode(const QDomNode &node)

node 의 복사본을 생성합니다.

사본의 데이터는 공유됩니다(얕은 사본): 한 노드를 수정하면 다른 노드도 변경됩니다. 심층 복사본을 만들려면 cloneNode()를 사용합니다.

[noexcept] QDomNode::~QDomNode()

개체를 파괴하고 해당 리소스를 해제합니다.

QDomNode QDomNode::appendChild(const QDomNode &newChild)

newChild 을 노드의 마지막 자식으로 추가합니다.

newChild 이 다른 노드의 자식인 경우 이 노드로 다시 부모가 변경됩니다. newChild 이 이 노드의 자식인 경우 자식 목록에서 해당 노드의 위치가 변경됩니다.

newChildQDomDocumentFragment 인 경우 조각의 자식이 조각에서 제거되고 추가됩니다.

newChildQDomElement 이고 이 노드가 이미 요소 노드를 자식으로 가지고 있는 QDomDocument 인 경우 newChild 는 자식으로 추가되지 않고 null 노드가 반환됩니다.

성공하면 newChild 에 대한 새 참조를 반환하고 실패하면 null node 을 반환합니다.

널 노드(예: 기본 생성자를 사용하여 생성된 경우)에서 이 함수를 호출하면 아무 작업도 수행하지 않고 null node 을 반환합니다.

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" 요소의 하위 노드 목록에는 &l;h1&l;태그에 의해 생성된 노드와 &l;p&l;태그에 의해 생성된 노드가 포함됩니다.

목록의 노드는 복사되지 않으므로 목록의 노드를 변경하면 이 노드의 하위 노드도 변경됩니다.

firstChild() 및 lastChild()도 참조하세요 .

void QDomNode::clear()

노드를 널 노드로 변환합니다. 이전에 널 노드가 아니었다면 해당 유형과 콘텐츠가 삭제됩니다.

isNull()도 참조하세요 .

QDomNode QDomNode::cloneNode(bool deep = true) const

QDomNode 의 딥(얕은 복사본이 아닌) 복사본을 만듭니다.

deep 이 참이면 복제가 재귀적으로 수행되므로 노드의 모든 하위 노드도 딥 복사됩니다. deep 이 거짓이면 노드 자체만 복사되며 복사본에는 하위 노드가 없습니다.

int QDomNode::columnNumber() const

QDomDocument::setContent()에 의해 생성된 노드의 경우 이 함수는 노드가 구문 분석된 XML 문서의 열 번호를 반환합니다. 그렇지 않으면 -1이 반환됩니다.

lineNumber() 및 QDomDocument::setContent()도 참조하세요 .

QDomNode QDomNode::firstChild() const

노드의 첫 번째 자식을 반환합니다. 자식 노드가 없는 경우 null node 가 반환됩니다. 반환된 노드를 변경하면 문서 트리의 노드도 변경됩니다.

lastChild() 및 childNodes()도 참조하세요 .

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

태그 이름 tagName 과 네임스페이스 URI namespaceURI 를 가진 첫 번째 하위 엘리먼트를 반환합니다. tagName 이 비어 있으면 namespaceURI 이 있는 첫 번째 하위 요소를 반환하고 namespaceURI 이 비어 있으면 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)

하위 노드 refChild 뒤에 newChild 노드를 삽입합니다. refChild 은 이 노드의 직접 하위 노드여야 합니다. refChildnull 인 경우 newChild 이 노드의 마지막 자식으로 추가됩니다.

newChild 이 다른 노드의 자식인 경우 이 노드로 다시 부모 노드가 됩니다. newChild 이 이 노드의 자식인 경우 자식 목록에서 해당 노드의 위치가 변경됩니다.

newChildQDomDocumentFragment 인 경우 조각의 자식은 조각에서 제거되고 refChild 뒤에 삽입됩니다.

성공하면 newChild 에 대한 새 참조를 반환하고 실패하면 null node 을 반환합니다.

DOM 사양은 어트리뷰트 노드 삽입을 허용하지 않지만, 역사적인 이유로 인해 QDom은 그럼에도 불구하고 이를 허용합니다.

insertBefore(), replaceChild(), removeChild() 및 appendChild()도 참조하세요 .

QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)

하위 노드 refChild 앞에 newChild 노드를 삽입합니다. refChild 는 이 노드의 직접 하위 노드여야 합니다. refChildnull 인 경우 newChild 가 노드의 첫 번째 자식으로 삽입됩니다.

newChild 이 다른 노드의 자식인 경우 이 노드로 다시 부모 노드가 됩니다. newChild 이 이 노드의 자식인 경우 자식 목록에서 해당 노드의 위치가 변경됩니다.

newChildQDomDocumentFragment 인 경우 조각의 자식이 조각에서 제거되고 refChild 앞에 삽입됩니다.

성공하면 newChild 에 대한 새 참조를 반환하고 실패하면 null node 을 반환합니다.

DOM 사양은 어트리뷰트 노드 삽입을 허용하지 않지만, 역사적인 이유로 인해 QDom은 그럼에도 불구하고 이를 허용합니다.

insertAfter(), replaceChild(), removeChild() 및 appendChild()도 참조하세요 .

bool QDomNode::isAttr() const

노드가 어트리뷰트인 경우 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

이 함수가 true 를 반환하면 이 객체가 QDomAttribute임을 의미하지 않으며, toAttribute()로 QDomAttribute를 가져올 수 있습니다.

toAttr()도 참조하세요 .

bool QDomNode::isCDATASection() const

노드가 CDATA 섹션인 경우 true 을 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomCDATASection 라는 의미는 아니며 toCDATASection()를 사용하여 QDomCDATASection 를 얻을 수 있습니다.

toCDATASection()도 참조하세요 .

bool QDomNode::isCharacterData() const

노드가 문자 데이터 노드인 경우 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomCharacterData 라는 의미는 아니며 toCharacterData()를 사용하여 QDomCharacterData 를 얻을 수 있습니다.

toCharacterData()도 참조하세요 .

bool QDomNode::isComment() const

노드가 코멘트인 경우 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomComment 라는 의미는 아니며 toComment()를 사용하여 QDomComment 를 얻을 수 있습니다.

toComment()도 참조하세요 .

bool QDomNode::isDocument() const

노드가 문서인 경우 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 을 반환하는 경우 이 객체가 QDomDocument 이라는 의미는 아니며 toDocument()로 QDomDocument 을 얻을 수 있습니다.

toDocument()도 참조하세요 .

bool QDomNode::isDocumentFragment() const

노드가 문서 조각인 경우 true 를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomDocumentFragment 라는 의미는 아니며 toDocumentFragment()를 사용하여 QDomDocumentFragment 를 얻을 수 있습니다.

toDocumentFragment()도 참조하세요 .

bool QDomNode::isDocumentType() const

노드가 문서 유형인 경우 true 를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomDocumentType 라는 의미는 아니며 toDocumentType()를 사용하여 QDomDocumentType 를 얻을 수 있습니다.

toDocumentType()도 참조하세요 .

bool QDomNode::isElement() const

노드가 엘리먼트인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomElement 라는 의미는 아니며 toElement()를 사용하여 QDomElement 를 얻을 수 있습니다.

toElement()도 참조하세요 .

bool QDomNode::isEntity() const

노드가 엔티티인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomEntity 라는 의미는 아니며, toEntity()를 사용하여 QDomEntity 를 얻을 수 있습니다.

toEntity()도 참조하세요 .

bool QDomNode::isEntityReference() const

노드가 엔티티 참조인 경우 true 를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomEntityReference 라는 의미는 아니며 toEntityReference()를 사용하여 QDomEntityReference 를 얻을 수 있습니다.

toEntityReference()도 참조하세요 .

bool QDomNode::isNotation() const

노드가 표기법인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomNotation 라는 의미는 아니며, toNotation()로 QDomNotation 를 가져올 수 있습니다.

toNotation()도 참조하세요 .

bool QDomNode::isNull() const

이 노드가 널이면(즉, 유형이나 콘텐츠가 없는 경우) true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

bool QDomNode::isProcessingInstruction() const

노드가 처리 명령어인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하면 이 객체가 QDomProcessingInstruction 이며, toProcessingInstruction()로 QProcessingInstruction을 가져올 수 있습니다.

toProcessingInstruction()도 참조하세요 .

bool QDomNode::isSupported(const QString &feature, const QString &version) const

DOM 구현이 feature 기능을 구현하고 이 기능이 버전 version 에서 이 노드에서 지원되는 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QDomImplementation::hasFeature()도 참조하세요 .

bool QDomNode::isText() const

노드가 텍스트 노드인 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

이 함수가 true 를 반환하는 경우 이 객체가 QDomText 라는 의미는 아니며 toText()로 QDomText 를 가져올 수 있습니다.

toText()도 참조하세요 .

QDomNode QDomNode::lastChild() const

노드의 마지막 자식을 반환합니다. 자식 노드가 없는 경우 null node 가 반환됩니다. 반환된 노드를 변경하면 문서 트리의 노드도 변경됩니다.

firstChild() 및 childNodes()도 참조하세요 .

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

태그 이름 tagName 과 네임스페이스 URI namespaceURI 를 가진 마지막 하위 엘리먼트를 반환합니다. tagName 이 비어 있으면 namespaceURI 이 있는 마지막 하위 요소를 반환하고 namespaceURI 이 비어 있으면 tagName 이 있는 마지막 하위 요소를 반환합니다. 두 매개 변수가 모두 비어 있으면 마지막 하위 요소를 반환합니다. 해당 자식이 존재하지 않으면 null 요소를 반환합니다.

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 과 같은 첫 번째 직접 자식 노드를 반환합니다.

이러한 직접 자식이 존재하지 않으면 null node 이 반환됩니다.

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 을 가진 다음 형제 자식 요소를 반환합니다. 두 매개 변수가 모두 비어 있으면 다음 형제 요소를 반환합니다. 해당 형제 요소가 존재하지 않으면 null 요소를 반환합니다.

firstChildElement(), previousSiblingElement() 및 lastChildElement()도 참조하세요 .

QString QDomNode::nodeName() const

노드의 이름을 반환합니다.

이름의 의미는 서브클래스에 따라 다릅니다:

Name의미
QDomAttr속성의 이름
QDomCDATASection문자열 "#cdata-section"
QDomComment문자열 "#댓글"
QDomDocument문자열 "#문서"
QDomDocumentFragment문자열 "#문서 조각"
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

노드의 값을 반환합니다.

값의 의미는 서브클래스에 따라 다릅니다:

Name의미
QDomAttr속성 값
QDomCDATASectionCDATA 섹션의 내용
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 이 &l;p&gt; 태그를 나타내는 경우 previousSibling()은 &l;h1&gt; 태그를 나타내는 노드를 반환합니다.

nextSibling()도 참조하세요 .

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

태그 이름 tagName 과 네임스페이스 URI namespaceURI 를 가진 이전 형제 요소를 반환합니다. tagName 이 비어 있으면 namespaceURI 이 있는 이전 형제 요소를 반환하고 namespaceURI 이 비어 있으면 tagName 이 있는 이전 형제 요소를 반환합니다. 두 파라미터가 모두 비어 있으면 이전 형제 요소를 반환합니다. 해당 형제 요소가 존재하지 않으면 null 요소를 반환합니다.

firstChildElement(), nextSiblingElement() 및 lastChildElement()도 참조하세요 .

QDomNode QDomNode::removeChild(const QDomNode &oldChild)

oldChild 을 하위 목록에서 제거합니다. oldChild 은 이 노드의 직접 하위 노드여야 합니다.

성공하면 oldChild 에 대한 새 참조를 반환하고 실패하면 null node 을 반환합니다.

insertBefore(), insertAfter(), replaceChild() 및 appendChild()도 참조하세요 .

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

oldChildnewChild 으로 바꿉니다. oldChild 은 이 노드의 직접 자식이어야 합니다.

newChild 이 다른 노드의 자식인 경우 이 노드로 다시 부모가 변경됩니다. newChild 이 이 노드의 자식인 경우 자식 목록에서 해당 노드의 위치가 변경됩니다.

newChildQDomDocumentFragment 인 경우 oldChild 는 조각의 모든 자식으로 대체됩니다.

성공하면 oldChild 에 대한 새 참조를 반환하고 실패하면 null node 을 반환합니다.

insertBefore(), insertAfter(), removeChild() 및 appendChild()도 참조하세요 .

void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const

노드와 모든 하위 노드의 XML 표현을 stream 스트림에 씁니다. 이 함수는 indent 을 노드를 들여쓰기할 공간으로 사용합니다.

문서에 잘못된 XML 문자나 지정된 인코딩으로 인코딩할 수 없는 문자가 포함된 경우 결과 및 동작이 정의되지 않습니다.

encodingPolicyQDomNode::EncodingFromDocument 이고 이 노드가 문서 노드인 경우, 텍스트 스트림 stream 의 인코딩은 "xml"이라는 이름의 처리 명령이 있는 경우 XML 선언으로 취급하여 설정되며, 그렇지 않으면 기본값은 UTF-8로 설정됩니다. XML 선언은 처리 명령어가 아니지만 역사적인 이유로 이 동작이 존재합니다. 이 노드가 문서 노드가 아닌 경우 텍스트 스트림의 인코딩이 사용됩니다.

encodingPolicyEncodingFromTextStream 이고 이 노드가 문서 노드인 경우, 이 함수는 텍스트 스트림 stream 에 지정된 인코딩이 사용된다는 점을 제외하면 save(QTextStream &str, int indent)와 동일하게 동작합니다.

문서에 잘못된 XML 문자나 지정된 인코딩으로 인코딩할 수 없는 문자가 포함된 경우 결과 및 동작이 정의되지 않습니다.

void QDomNode::setNodeValue(const QString &value)

노드의 값을 value 로 설정합니다.

nodeValue()도 참조하세요 .

void QDomNode::setPrefix(const QString &pre)

노드에 네임스페이스 접두사가 있는 경우 이 함수는 노드의 네임스페이스 접두사를 pre 로 변경합니다. 그렇지 않으면 이 함수는 아무 작업도 수행하지 않습니다.

ElementNode 또는 AttributeNode 유형의 노드만 네임스페이스를 가질 수 있습니다. 네임스페이스 접두사는 생성 시 지정해야 하며, 이후에는 네임스페이스 접두사를 추가할 수 없습니다.

prefix(), localName(), namespaceURI(), QDomDocument::createElementNS() 및 QDomDocument::createAttributeNS()도 참조하세요 .

QDomAttr QDomNode::toAttr() const

QDomNodeQDomAttr 로 변환합니다. 노드가 어트리뷰트가 아닌 경우 반환되는 객체는 null 입니다.

isAttr()도 참조하세요 .

QDomCDATASection QDomNode::toCDATASection() const

QDomNodeQDomCDATASection 으로 변환합니다. 노드가 CDATA 섹션이 아닌 경우 반환되는 객체는 null 입니다.

isCDATASection()도 참조하세요 .

QDomCharacterData QDomNode::toCharacterData() const

QDomNodeQDomCharacterData 으로 변환합니다. 노드가 문자 데이터 노드가 아닌 경우 반환되는 객체는 null 입니다.

isCharacterData()도 참조하세요 .

QDomComment QDomNode::toComment() const

QDomNodeQDomComment 로 변환합니다. 노드가 댓글이 아닌 경우 반환되는 객체는 null 입니다.

isComment()도 참조하세요 .

QDomDocument QDomNode::toDocument() const

QDomNodeQDomDocument 로 변환합니다. 노드가 문서가 아닌 경우 반환되는 객체는 null 입니다.

isDocument()도 참조하세요 .

QDomDocumentFragment QDomNode::toDocumentFragment() const

QDomNodeQDomDocumentFragment 로 변환합니다. 노드가 문서 조각이 아닌 경우 반환되는 객체는 null 입니다.

isDocumentFragment()도 참조하세요 .

QDomDocumentType QDomNode::toDocumentType() const

QDomNodeQDomDocumentType 로 변환합니다. 노드가 문서 유형이 아닌 경우 반환되는 객체는 null 입니다.

isDocumentType()도 참조하세요 .

QDomElement QDomNode::toElement() const

QDomNodeQDomElement 로 변환합니다. 노드가 엘리먼트가 아닌 경우 반환되는 객체는 null 입니다.

isElement()도 참조하세요 .

QDomEntity QDomNode::toEntity() const

QDomNodeQDomEntity 로 변환합니다. 노드가 엔티티가 아닌 경우 반환되는 객체는 null 입니다.

isEntity()도 참조하세요 .

QDomEntityReference QDomNode::toEntityReference() const

QDomNodeQDomEntityReference 으로 변환합니다. 노드가 엔티티 참조가 아닌 경우 반환되는 객체는 null 입니다.

isEntityReference()도 참조하세요 .

QDomNotation QDomNode::toNotation() const

QDomNodeQDomNotation 로 변환합니다. 노드가 표기법이 아닌 경우 반환되는 객체는 null 입니다.

isNotation()도 참조하세요 .

QDomProcessingInstruction QDomNode::toProcessingInstruction() const

QDomNodeQDomProcessingInstruction 로 변환합니다. 노드가 처리 명령어가 아닌 경우 반환되는 객체는 null 입니다.

isProcessingInstruction()도 참조하세요 .

QDomText QDomNode::toText() const

QDomNodeQDomText 로 변환합니다. 노드가 텍스트가 아닌 경우 반환되는 객체는 null 입니다.

isText()도 참조하세요 .

bool QDomNode::operator!=(const QDomNode &other) const

other 과 이 DOM 노드가 같지 않으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QDomNode &QDomNode::operator=(const QDomNode &other)

other 의 복사본을 이 DOM 노드에 할당합니다.

복사본의 데이터는 공유됩니다(얕은 복사본): 한 노드를 수정하면 다른 노드도 변경됩니다. 심층 복사본을 만들려면 cloneNode()를 사용합니다.

bool QDomNode::operator==(const QDomNode &other) const

other 과 이 DOM 노드가 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QDomNode 의 모든 인스턴스는 QDomDocument 의 기본 데이터 구조에 대한 참조로 작동합니다. 동일성 테스트는 두 참조가 동일한 기본 노드를 가리키는지 확인합니다. 예를 들어

QDomDocument document;
QDomElement element1 = document.documentElement();
QDomElement element2 = element1;

두 노드(QDomElementQDomNode 하위 클래스)가 모두 문서의 루트 요소를 참조하는 경우 element1 == element2 는 참을 반환합니다. 반면에:

QDomElement element3 = document.createElement("MyElement");
QDomElement element4 = document.createElement("MyElement");

두 노드가 같은 이름을 가진 빈 엘리먼트이더라도 element3 == element4 는 기본 데이터 구조에서 서로 다른 두 노드를 참조하므로 false를 반환합니다.

관련 비회원

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

노드 node 및 모든 하위 노드의 XML 표현을 str 스트림에 씁니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.