
	                	                 
XMLReader::read() 함수는 XML 파일에서 다음 요소를 읽어오는 함수입니다. 
XMLReader::readOuter() 함수는 XML 파일에서 다음 요소를 읽어오되, 요소의 시작과 끝을 포함하여 읽어옵니다. 
예를 들어, 다음 XML 파일이 있다고 가정해 보겠습니다.
#hostingforum.kr
xml
  John
  30
XMLReader::read() 함수를 호출하면 다음 요소는 "name"이 됩니다.
XMLReader::readOuter() 함수를 호출하면 다음 요소는 "John"이 됩니다.
이 두 함수의 차이점은 XMLReader::readOuter() 함수가 요소의 시작과 끝을 포함하여 읽어오는 것입니다.
XMLReader::read() 함수를 사용할 때는 XMLReader::readOuter() 함수를 호출하여 요소의 시작과 끝을 포함하여 읽어오는 것이 좋습니다.
예를 들어, 다음 코드를 보겠습니다.
#hostingforum.kr
cpp
#include 
#include 
#include 
int main() {
  xmlDocPtr doc = xmlParseFile("example.xml");
  xmlNodePtr root = xmlDocGetRootElement(doc);
  xmlNodePtr cur = root->children;
  while (cur) {
    xmlChar* name = xmlNodeGetContent(cur);
    std::cout << "name: " << name << std::endl;
    xmlFree(name);
    cur = cur->next;
  }
  xmlFreeDoc(doc);
  return 0;
}
이 코드는 XMLReader::read() 함수를 호출하여 XML 파일에서 다음 요소를 읽어옵니다.
XMLReader::readOuter() 함수를 호출하여 요소의 시작과 끝을 포함하여 읽어오는 코드는 다음과 같습니다.
#hostingforum.kr
cpp
#include 
#include 
#include 
int main() {
  xmlDocPtr doc = xmlParseFile("example.xml");
  xmlNodePtr root = xmlDocGetRootElement(doc);
  xmlNodePtr cur = root->children;
  while (cur) {
    xmlChar* name = xmlNodeGetContent(cur);
    std::cout << "name: " << name << std::endl;
    xmlFree(name);
    cur = cur->next;
  }
  xmlFreeDoc(doc);
  return 0;
}
이 코드는 XMLReader::readOuter() 함수를 호출하여 요소의 시작과 끝을 포함하여 읽어옵니다.
이러한 차이점을 이해하여 적절한 함수를 호출하여 XML 파일을 읽어오면 더 효율적인 코드를 작성할 수 있습니다.
2025-04-10 17:48