
xml_set_element_handler 함수의 두 번째 인자인 "start_element" callback 함수는 XML 문서의 태그를 처리하는 데 사용됩니다. 이 함수는 XML 문서의 각 태그가 시작될 때 호출되는 함수입니다.
element 변수의 자료형은 DOMElement입니다. DOMElement는 XML 문서의 태그 이름, 속성 등 정보를 포함하는 객체입니다.
element 변수를 통하여 XML 문서의 태그 이름을 얻으려면 element->tagName 프로퍼티를 사용하면 됩니다. 속성 정보를 얻으려면 element->attributes 프로퍼티를 사용하면 됩니다.
예를 들어, 다음 XML 문서가 있다고 가정해 보겠습니다.
#hostingforum.kr
xml
John
30
이 XML 문서를 파싱하는 코드는 다음과 같습니다.
#hostingforum.kr
c
#include
#include
void start_element(void *userData, const xmlChar *name, const xmlChar **atts) {
printf("태그 이름: %sn", name);
printf("속성 정보:n");
for (int i = 0; atts[i] != NULL; i += 2) {
printf(" %s = %sn", atts[i], atts[i + 1]);
}
}
int main() {
xmlParserCtxtPtr ctxt;
xmlDocPtr doc;
xmlNodePtr root;
ctxt = xmlNewParserCtxt();
doc = xmlCtxtReadFile(ctxt, "example.xml", NULL, 0);
root = xmlDocGetRootElement(doc);
xmlSetElementHandler(start_element, NULL, NULL);
xmlNodePtr node;
for (node = root->children; node != NULL; node = node->next) {
xmlSetElementHandler(start_element, NULL, NULL);
}
xmlFreeDoc(doc);
xmlFreeParserCtxt(ctxt);
return 0;
}
이 코드는 XML 문서의 태그 이름과 속성 정보를 출력합니다.
2025-06-21 01:34