
DOMNode::C14NFile을 사용하여 XML 문서를 캐노니컬화하는 방법은 다음과 같습니다.
1. DOMNode::C14NFile을 사용하기 전에, XML 문서를 파싱하여 DOM 문서로 변환해야 합니다. 이때, XML 문서의 루트 노드는 DOM 문서의 루트 노드가 됩니다.
2. 캐노니컬화는 XML 문서의 루트 노드를 캐노니컬화하는 것입니다. 이를 위해서는 루트 노드의 모든 자식 노드를 캐노니컬화해야 합니다.
3. 루트 노드의 자식 노드를 캐노니컬화하는 방법은 다음과 같습니다.
* 루트 노드의 자식 노드를 순회하여, 각 노드의 자식 노드를 캐노니컬화합니다.
* 루트 노드의 자식 노드의 순서를 유지하기 위해, DOMNode::C14NFile의 'ordered' 옵션을 사용합니다.
4. 캐노니컬화가 완료되면, 캐노니컬화된 XML 문서를 파일로 저장합니다.
예를 들어, 다음과 같이 XML 문서를 캐노니컬화하는 방법을 보여줄 수 있습니다.
#hostingforum.kr
cpp
#include
#include
#include
int main() {
// XML 문서를 파싱하여 DOM 문서로 변환
xmlDocPtr doc = xmlParseFile("example.xml");
xmlNodePtr root = xmlDocGetRootElement(doc);
// 루트 노드의 자식 노드를 캐노니컬화
xmlNodePtr child = root->children;
while (child != NULL) {
xmlC14NDocType(doc, child, "ordered");
child = child->next;
}
// 캐노니컬화된 XML 문서를 파일로 저장
xmlSaveFormatFile("output.xml", doc, 1);
// 메모리를 해제
xmlFreeDoc(doc);
return 0;
}
이 예제에서는 XML 문서를 파싱하여 DOM 문서로 변환한 후, 루트 노드의 자식 노드를 캐노니컬화하고 캐노니컬화된 XML 문서를 파일로 저장합니다. 또한, 루트 노드의 자식 노드의 순서를 유지하기 위해, DOMNode::C14NFile의 'ordered' 옵션을 사용합니다.
2025-07-23 22:18