XML采用Boost::regex解析实例

{
    string text("<DATA><DATABASE>GOOGLE</DATABASE><WORD>大汶口文化遗址;氏族公社遗址;金沙遗址;圆明园遗址公园;河姆渡遗址位于;秦帝国全天星台遗址;又称和县猿人遗址;三星堆遗址;河姆渡文化遗址;地震遗址公园;</WORD></DATA><DATA><DATABASE>百度</DATABASE><WORD>金沙遗址;金沙遗址博物馆;圆明园遗址公园;半坡遗址;调查苏贝尔斯遗址;河姆渡遗址;曲江遗址公园;大明宫遗址公园;曲江池遗址公园;元大都遗址公园;</WORD></DATA><DATA><DATABASE>百度百科</DATABASE><WORD>好川古文化遗址;古迹;陵园;全国重点文物保护单位;人文景观;自然遗产;烽燧;民俗;古城;文物;名胜古迹;碑刻;石刻;文物古迹;遗迹;巴姆古城堡;白果园;</WORD></DATA>");
    sregex_iterator imm(text.begin(),text.end(),regex("<DATA>(.*?)</DATA>")),endm;
    while (imm!=endm)
    {
        //cout<<(*imm)<<endl;
        string ttext((*imm).str());
        smatch result;
        if (regex_match(ttext,result,regex("<DATA><DATABASE>(.*?)</DATABASE><WORD>(.*?)</WORD></DATA>")))
        {
            cout<<result[1]<<"/t";
            {
                string term(result[2]);
                sregex_token_iterator itt(term.begin(),term.end(),regex(";"),-1),end;
                while (itt!=end)
                {
                    cout<<(*itt)<<",";
                    ++itt;
                }
            }
            cout<<endl;
        }
        ++imm;
    }
}

你可能感兴趣的:(xml,String,百度,iterator,regex,token)