336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
루트 엘리먼트 내부에 텍스트와 자식 엘리먼트를 넣어보겠습니다. 먼저 루트 엘리먼트인 "document"에 "Hello, Word!"라는 문장을 넣어보겠습니다.
<?xml version="1.0"?> <document> Hello, World! </document>
이를 소스코드로 표현하면
/* ex09.cpp */ #include <windows.h> #include <stdio.h> #include <locale.h> #import <msxml4.dll> int main(int argc, char * argv[]) { ::setlocale(LC_ALL, ""); if (SUCCEEDED(::CoInitialize(NULL))) { { _bstr_t bstr1, bstr2, bstr3; _variant_t variant; IXMLDOMDocumentPtr xmlDocument; IXMLDOMProcessingInstructionPtr xmlProcessingInstruction; IXMLDOMElementPtr xmlElement; if (!SUCCEEDED(xmlDocument.CreateInstance(__uuidof(DOMDocument)))) { ::wprintf(L"xmlDocument가 생성되지 않았습니다.\n"); ::CoUninitialize(); return -1; } bstr1 = TEXT("xml"); bstr2 = TEXT("version=\"1.0\""); xmlDocument->createProcessingInstruction(bstr1, bstr2, &xmlProcessingInstruction); xmlDocument->appendChild(xmlProcessingInstruction, NULL); /* <document>Hello, World!</document> 부분을 만드는 과정 */ bstr1 = TEXT("document"); // 태그의 이름은 document bstr2 = TEXT("Hello, World!"); // 텍스트의 내용은 Hello, World! xmlDocument->createElement(bstr1, &xmlElement); xmlElement->put_text(bstr2); // 엘리먼트에 텍스트 삽입 xmlDocument->appendChild(xmlElement, NULL); xmlDocument->get_xml(bstr3.GetAddress()); ::wprintf(L"%s", (const wchar_t *)bstr3); } ::CoUninitialize(); } return 0; }
실행 결과는
자식 엘리먼트를 넣는 방법은 루트 엘리먼트를 만드는 방법과 같습니다. 다만 삽입할 대상을 xmlDocument가 아닌 루트 엘리먼트로 바꾸면 됩니다.
<?xml version="1.0"?> <document> <child> </child> </document>
위 xml을 작성하는 소스는
/* ex10.cpp */ #include <windows.h> #include <stdio.h> #include <locale.h> #import <msxml4.dll> int main(int argc, char * argv[]) { ::setlocale(LC_ALL, ""); if (SUCCEEDED(::CoInitialize(NULL))) { { _bstr_t bstr1, bstr2, bstr3; _variant_t variant; IXMLDOMDocumentPtr xmlDocument; IXMLDOMProcessingInstructionPtr xmlProcessingInstruction; IXMLDOMElementPtr xmlElement1, xmlElement2; if (!SUCCEEDED(xmlDocument.CreateInstance(__uuidof(DOMDocument)))) { ::wprintf(L"xmlDocument가 생성되지 않았습니다.\n"); ::CoUninitialize(); return -1; } bstr1 = TEXT("xml"); bstr2 = TEXT("version=\"1.0\""); xmlDocument->createProcessingInstruction(bstr1, bstr2, &xmlProcessingInstruction); xmlDocument->appendChild(xmlProcessingInstruction, NULL); bstr1 = TEXT("document"); xmlDocument->createElement(bstr1, &xmlElement1); bstr1 = TEXT("child"); xmlDocument->createElement(bstr1, &xmlElement2); xmlDocument->appendChild(xmlElement1, NULL); // 루트 엘리먼트를 XMLDocument에 추가합니다. xmlElement1->appendChild(xmlElement2, NULL); // 자식 엘리먼트를 루트 엘리먼트에 추가합니다. xmlDocument->get_xml(bstr3.GetAddress()); ::wprintf(L"%s", (const wchar_t *)bstr3); } ::CoUninitialize(); } return 0; }
실행 결과는
'Application Programming Interface > Windows API' 카테고리의 다른 글
Visual C++로 MSXML 사용하기 #7 (1) | 2014.08.19 |
---|---|
Visual C++로 MSXML 사용하기 #6 (0) | 2014.08.19 |
Visual C++로 MSXML 사용하기 #4 (0) | 2014.08.12 |
Visual C++로 MSXML 사용하기 #3 (0) | 2014.08.12 |
Visual C++로 MSXML 사용하기 #2 (2) | 2014.08.11 |