QDomNode Class
QDomNode 클래스는 DOM 트리의 모든 노드에 대한 기본 클래스입니다. 더 보기...
헤더: | #include <QDomNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
qmake: | QT += xml |
상속 대상: |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDomNode는 XML 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입합니다.
공용 유형
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::EncodingFromDocument | 1 | 문서에서 인코딩을 가져옵니다. |
QDomNode::EncodingFromTextStream | 2 | 인코딩은 QTextStream 에서 가져옵니다. |
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()
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 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 은 이 노드의 직접 하위 노드여야 합니다. 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)
하위 노드 refChild 앞에 newChild 노드를 삽입합니다. 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
노드가 문서 조각인 경우 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 | 속성 값 |
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 이 &l;p> 태그를 나타내는 경우 previousSibling()은 &l;h1> 태그를 나타내는 노드를 반환합니다.
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 이고 이 노드가 문서 노드인 경우, 이 함수는 텍스트 스트림 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
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 &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;
두 노드(QDomElement 는 QDomNode 하위 클래스)가 모두 문서의 루트 요소를 참조하는 경우 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.