
	                	                 
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