이 페이지에서

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()을 사용하여 노드의 유형을 확인할 수 있습니다.

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

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

QDomNode는 nullptr 와 마찬가지로 null일 수 있습니다. null 노드의 복사본을 생성하면 또 다른 null 노드가 생성됩니다. null 노드는 수정할 수 없지만, null이 아닐 수도 있는 다른 노드를 해당 노드에 할당하는 것은 가능합니다. 이 경우, null 노드의 복사본은 null 상태로 유지됩니다. isNull()를 호출하여 QDomNode가 null인지 확인할 수 있습니다. QDomNode(또는 그 파생 클래스)의 빈 생성자는 null 노드를 생성합니다.

노드는 ` 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();
}

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

멤버 유형 문서

enum QDomNode::EncodingPolicy

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

상수값상수설명
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 가 이 노드의 자식인 경우, 자식 목록 내에서의 순서가 변경됩니다.

newChild 가 QDomDocumentFragment 인 경우, 해당 프래그먼트의 자식 노드들은 프래그먼트에서 제거된 후 끝에 추가됩니다.

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

성공 시 newChild 에 대한 새로운 참조를 반환하고, 실패 시 null node 를 반환합니다.

null 노드(예: 기본 생성자로 생성된 노드)에서 이 함수를 호출하면 아무 작업도 수행되지 않고 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" 요소의 자식 노드 목록에는 &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 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)

노드 newChild 를 자식 노드 refChild 뒤에 삽입합니다. refChild 는 이 노드의 직접 자식이어야 합니다. refChild 가 null 인 경우, newChild 는 이 노드의 마지막 자식으로 추가됩니다.

newChild 가 다른 노드의 자식인 경우, 이 노드로 부모가 재지정됩니다. newChild 가 이 노드의 자식인 경우, 자식 목록 내에서의 위치가 변경됩니다.

newChild 이 QDomDocumentFragment 인 경우, 해당 프래그먼트의 자식 노드들은 프래그먼트에서 제거되고 refChild 뒤에 삽입됩니다.

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

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 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

노드가 문서 단편(document fragment)인 경우 ` 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

노드가 표기법(notation)인 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.

이 함수가 ` true`를 반환한다고 해서 해당 객체가 ` QDomNotation`임을 의미하지는 않습니다. ` toNotation()`를 사용하여 ` QDomNotation `를 얻을 수 있습니다.

toNotation()도 참조하십시오 .

bool QDomNode::isNull() const

이 노드가 null인 경우(즉, 유형이나 내용이 없는 경우) ` 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

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

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

이름의미
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속성 값
QDomCDATASectionCDATA 섹션의 내용
QDomComment주석
QDomProcessingInstruction처리 지시문의 데이터
QDomText텍스트

다른 모든 하위 클래스는 노드 값이 없으며 빈 문자열을 반환합니다.

setNodeValue() 및 nodeName()도 참조하십시오 .

void QDomNode::normalize()

요소에 normalize()를 호출하면 해당 요소의 모든 자식 요소가 표준 형식으로 변환됩니다. 즉, 인접한 ` QDomText ` 객체들은 하나의 `text` 객체로 병합됩니다(`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 가 &lt;p&gt; 태그를 나타낸다면, previousSibling()은 &lt;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)

oldChild 을 newChild 으로 대체합니다. oldChild 은 이 노드의 직접 자식 노드여야 합니다.

newChild 가 다른 노드의 자식인 경우, 이 노드로 부모가 변경됩니다. newChild 가 이 노드의 자식인 경우, 자식 목록 내에서의 순서가 변경됩니다.

newChild 가 QDomDocumentFragment 인 경우, 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 문자나 지정된 인코딩으로 인코딩할 수 없는 문자가 포함된 경우, 결과 및 동작은 정의되지 않습니다.

encodingPolicy 가 QDomNode::EncodingFromDocument 이고 이 노드가 문서 노드인 경우, 텍스트 스트림 stream 의 인코딩은 "xml"이라는 이름의 처리 지시문을 XML 선언으로 간주하여 설정되며, 해당 처리 지시문이 존재하지 않으면 기본적으로 UTF-8로 설정됩니다. XML 선언은 처리 지시문이 아니지만, 이러한 동작은 역사적 이유로 존재합니다. 이 노드가 문서 노드가 아닌 경우, 텍스트 스트림의 인코딩이 사용됩니다.

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

문서에 유효하지 않은 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

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 로 변환합니다. 노드가 표기법(notation)이 아닌 경우, 반환되는 객체는 null 가 됩니다.

isNotation()도 참조하십시오 .

QDomProcessingInstruction QDomNode::toProcessingInstruction() const

QDomNode 을 QDomProcessingInstruction 으로 변환합니다. 노드가 처리 명령어가 아닌 경우, 반환되는 객체는 null 가 됩니다.

isProcessingInstruction()도 참조하십시오 .

QDomText QDomNode::toText() const

QDomNode 를 QDomText 로 변환합니다. 노드가 텍스트가 아닌 경우, 반환되는 객체는 null 가 됩니다.

isText()도 참조하십시오 .

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

other 와 이 DOM 노드가 서로 다를 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.

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

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

복사본의 데이터는 공유됩니다(표면 복사): 한 노드를 수정하면 다른 노드도 함께 변경됩니다. 깊은 복사를 하려면 cloneNode()를 사용하십시오.

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

other 와 이 DOM 노드가 동일하면 true 을 반환하고, 그렇지 않으면 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)

노드 ` node `와 그 모든 자식 노드의 XML 표현을 스트림 ` str`에 기록합니다.

© 2026 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.