confファイルを解析するTinyXml

私はTinyXMLライブラリの使い方を理解しようとしています。

私はこのconfファイルを解析する必要があります:

<?xml version="1.0" encoding="UTF-8"?>



    
        

        
                
                        BitDefender>
                         C:\Program Files\Common Files\BitDefender\BitDefender Threat Scanner\av64bit_26308\bdc.exe 
                        0x80000000
                         %avpath% \log=%avlog% %scanpath% 
                        (%scanpath%.*?)+(([a-zA-Z0-9]+\\.)+[a-zA-Z]{2,4})+(.+[a-zA-Z_])
                        C:\log\bd_log.txt
                
          

そしてC ++コード

#include "stdafx.h"
#include "iostream"
#include "tinyxml.h"

int main(int argc, char* argv[])
{

    TiXmlDocument doc( "D:\\client_conf.xml" );
    bool loadOkay = doc.LoadFile();
    if ( loadOkay )  
        printf("Yes \n");
    else
        printf("No \n");

    TiXmlHandle hDoc(&doc);
    TiXmlElement* pElem;
    TiXmlText* pText;
    TiXmlHandle hRoot(0);
    pElem = hDoc.FirstChildElement().Element();    
    if (!pElem)
     printf("error element");

    hRoot = TiXmlHandle(pElem);
    pElem = hRoot.FirstChild("server_addr").Element();
    const char* info = pElem->Attribute("ip");
    printf(  "%s \n", info);    

    pElem = hRoot.FirstChild("port").Element();
    info = pElem->Attribute("num");
    printf( "%s \n", info); 

    system("pause");

    return 0;
}

今私は最初の2つのparamを得ることができますが、 "AV_list"ブロックに到達する方法を理解していません。どんな助けもありがとう。 (:

0

1 答え

TinyXmlのドキュメントを見てください。あなたの友人は TiXmlNodeクラスリファレンスです。ほとんどのNode関数は、TiXmlElementsでも使用できます。 既にFirstChild()関数を使用して要素の最初の子を取得しています。 NextSibling()関数を使用して、すべての要素を反復処理します。 NextSiblingElement()関数を使用して要素を直接取得することもできます。

Antotherの洗練されたソリューションは、XPathを使用してxmlファイルから要素を取得することです。 TinyXMLの上に構築される TinyXPath があります。それはいくつかの XPathの知識が必要ですが、価値があるかもしれません。 ( XPath標準

0
追加された