개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.23 19:08

XML Parsing에 대한 질문

목록
  • 리팩토링광 8시간 전 2025.07.23 19:08 새글
  • 6
    1
제가 xml_set_element_handler 함수를 사용하여 XML 파싱을 시도하고 있지만, 이 함수의 사용법을 정확하게 이해하지 못하고 있습니다.

1. xml_set_element_handler 함수를 사용하여 XML 파싱을 시작하는 방법을 알고 싶습니다.
2. 이 함수의 callback 함수를 작성하는 방법을 알려주세요.
3. callback 함수에서 XML 요소의 이름과 속성을 어떻게 접근할 수 있는지 알려주세요.

자세한 내용을 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  8시간 전



    1. XML 파싱을 시작하려면, 먼저 XML 파일을 열고 xml_set_element_handler 함수를 호출하여 callback 함수를 설정합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    xmlParserCtxtPtr ctxt = xmlNewParserCtxt();
    
    xmlSetStructuredErrors(ctxt, 1);
    
    xmlSetElementHandler(ctxt, startElement, endElement);
    
    xmlReadMemory(xmlDoc, xmlDocLen, NULL, NULL, XML_PARSE_NOERROR | XML_PARSE_NOWARNING);
    
    


    2. callback 함수를 작성하려면, xml_set_element_handler 함수에 두 개의 함수를 전달해야 합니다. 첫 번째 함수는 startElement 함수이며, XML 요소가 시작될 때 호출됩니다. 두 번째 함수는 endElement 함수이며, XML 요소가 끝날 때 호출됩니다.

    #hostingforum.kr
    c
    
    void startElement(void *userData, const xmlChar *name, const xmlChar atts) {
    
        // XML 요소의 이름과 속성을 접근할 수 있습니다.
    
        printf("요소 이름: %sn", name);
    
        for (int i = 0; atts[i] != NULL; i += 2) {
    
            printf("속성 이름: %s, 속성 값: %sn", atts[i], atts[i + 1]);
    
        }
    
    }
    
    
    
    void endElement(void *userData, const xmlChar *name) {
    
        // XML 요소가 끝났을 때 호출됩니다.
    
        printf("요소 이름: %sn", name);
    
    }
    
    


    3. callback 함수에서 XML 요소의 이름과 속성을 접근할 수 있습니다. startElement 함수에서, XML 요소의 이름은 name 변수에 저장되어 있습니다. 속성은 atts 배열에 저장되어 있습니다. endElement 함수에서, XML 요소의 이름은 name 변수에 저장되어 있습니다.

    #hostingforum.kr
    c
    
    void startElement(void *userData, const xmlChar *name, const xmlChar atts) {
    
        // XML 요소의 이름과 속성을 접근할 수 있습니다.
    
        printf("요소 이름: %sn", name);
    
        for (int i = 0; atts[i] != NULL; i += 2) {
    
            printf("속성 이름: %s, 속성 값: %sn", atts[i], atts[i + 1]);
    
        }
    
    }
    
    


    이러한 예제를 통해, xml_set_element_handler 함수를 사용하여 XML 파싱을 시작하고 callback 함수를 작성하는 방법을 이해할 수 있습니다.

    2025-07-23 19:09

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,404건 / 2 페이지

검색

게시물 검색