1. 程式人生 > >用cocos2d-x 解析xml

用cocos2d-x 解析xml

原帖地址 http://blog.sina.com.cn/s/blog_7018d38201010yop.html

cocos2d-x如何獲得Resources目錄路徑?--

CCFileUtils::fullPathFromRelativePath("檔名")
可以使用TinyXML
 TinyXML是一個開源的解析XML的解析庫,能夠用於C++,能夠在WindowsLinux中編譯。這個解析庫的模型通過解析XML檔案,然後在記憶體中生成DOM模型,從而讓我們很方便的遍歷這課XML樹。
    注:DOM模型即文件物件模型,是將整個文件分成多個元素(如書、章、節、段等),並利用樹型結構表示這些元素之間的順序關係以及巢狀包含關係(理解html語言的讀者會很容易理解這種樹狀模型)。
               
    如下是一個XML片段:
    <Persons>
        <Person ID="1">
            <name>周星星</name>
            <age>20</age>
        </Person>
        <Person ID="2">
            <name>白晶晶</name>
            <age>18</age>
        </Person>
    </Persons>
    在TinyXML中,根據XML的各種元素來定義了一些類:
        TiXmlBase:整個TinyXML模型的基類。
                TiXmlAttribute:對應於XML中的元素的屬性。
                TiXmlNode
:對應於DOM結構中的節點。
                        TiXmlComment:對應於XML中的註釋。
                        TiXmlDeclaration:對應於XML中的申明部分,即<?versiong="1.0" ?>。
                        TiXmlDocument:對應於XML的整個文件。
                        TiXmlElement:對應於XML的元素。
                        TiXmlText:對應於XML的文字部分。
                        TiXmlUnknown:對應於XML的未知部分。 
        TiXmlHandler:定義了針對XML的一些操作。
    那我們如何使用這些類以及他們的方法來操縱我們的XML呢?請看下面。
    一、讀取XML(假設我們的Xml文件中的內容與上面的Xml內容一樣)
    //建立一個XML的文件物件
    TiXmlDocument *myDocument = new TiXmlDocument("填上你的Xml檔名");
    myDocument->LoadFile();
    //獲得根元素,即Persons。
    TiXmlElement *RootElement = myDocument.RootElement();