[TinyXML] 사용해보기 - 읽어오기

개발 2007. 8. 10. 14:57

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


TimyXML 사용해보기 - xml에서 읽어오기


저자 : hanburn
날짜 : 2007.08.10
환경 : VS-2003, TinyXML 2.5.3


XML에 대해서는 이미 알고 있다고 가정합니다.
(모르면 공부하고 다시 오세요 ^^)

일단 XML을 파일에서 읽을수도 있고 문자열로 읽을 수도 있다.
아래 예에서 사용할 xml 파일은 다음과 같다.

<?xml version="1.0" ?>
<MyApp>
    <!-- Settings for MyApp -->
    <Messages>
        <Welcome>Welcome to MyApp</Welcome>
        <Farewell>Thank you for using MyApp</Farewell>
    </Messages>
    <Windows>
        <Window name="MainFrame" x="5" y="15" w="400" h="250" />
    </Windows>
    <Connection ip="192.168.0.1" timeout="123.456000" />
</MyApp>


먼저 파일에서 읽을때는,

TiXmlDocument document;
document.LoadFile(_File_Name_);


문자열로 읽을때는,

TiXmlDocument document;
document.Parse(szXML);


너무 쉽다. 그런 다음에는 원하는 값을 찾아오면 된다.
먼저 노드와 엘리먼트를 가지고 오는 방법을 알아보자.
( 노드는 자식을 가지고 있는 것이고 엘리먼트는 마지막에 있는 놈이다. )

TiXmlElement* pRoot = document.FirstChildElement("MyApp");
if( NULL == pRoot ) return FALSE;   // 해당 Element가 없으면 널이므로.. 체크해주는게 좋다.


그럼, <Welcome> 태그로 가서 데이터를 가지고 와보자.

pElement = pRoot->FirstChildElement("Message");
pElement = pElement->FirstChildElement("Welcome");
char* pAA = pElement->Value();                 // pAA 은  "Welcome" 이다.
pAA = pElement->GetText();                       // pAA 은  "Welcome to MyApp" 이다.


이번에는 다음에 windows 태그로 가서 name 속성을 읽어 와보자.

pElement = pRoot->FirstChildElement("Windows");
char* pAA = pElement->Attribute("name");   // pAA에 "MainFrame"이 들어온다.
int x;
pElement->Attribute("x", &x);                    // x 에 숫자 5가 들어온다.


그다음에는 루프를 돌면서 child 노드를 순환하는 방법이다.


pNode = pRoot->FirstChild("sub_node");
 for( pNode ; pNode ; pNode = pNode->NextSibling())
 {
  pAA = pNode->Value();  

  pElement = pNode->FirstChildElement("item");  
  pAA = pElement->GetText();
}


 




 



: