例如如何从下面的html中提取所有的省份名称并自动存入数据库:
cur.addBoard(new Board("CN","3078","四川"))
cur.addBoard(new Board("CN","3256","天津"))
cur.addBoard(new Board("CN","3290","西藏"))
cur.addBoard(new Board("CN","3371","新疆"))
cur.addBoard(new Board("CN","3478","浙江"))
cur.addBoard(new Board("CN","3559","云南"))
cur.addBoard(new Board("CN","1908","湖北"))
cur.addBoard(new Board("CN","2258","江西"))
cur.addBoard(new Board("CN","3262","重庆"))
cur.addBoard(new Board("CN","2536","宁夏"))
cur.addBoard(new Board("CN","2561","青海"))
cur.addBoard(new Board("CN","2610","上海"))
cur.addBoard(new Board("CN","2614","广东"))
cur.addBoard(new Board("CN","2728","山西"))
cur.addBoard(new Board("CN","2847","山东"))
cur.addBoard(new Board("CN","1002","安徽"))
cur.addBoard(new Board("CN","1098","北京"))
cur.addBoard(new Board("CN","1103","福建"))
cur.addBoard(new Board("CN","1181","甘肃"))
cur.addBoard(new Board("CN","1277","广西"))
cur.addBoard(new Board("CN","1382","贵州"))
cur.addBoard(new Board("CN","1474","海南"))
cur.addBoard(new Board("CN","1511","河北"))
cur.addBoard(new Board("CN","1670","河南"))
cur.addBoard(new Board("CN","1816","黑龙江"))
cur.addBoard(new Board("CN","2002","湖南"))
cur.addBoard(new Board("CN","2118","吉林"))
cur.addBoard(new Board("CN","2177","江苏"))
cur.addBoard(new Board("CN","2361","辽宁"))
cur.addBoard(new Board("CN","2434","内蒙古"))

解决方案 »

  1.   

    select省份的上一级节点,然后根据节点数循环取省份
      

  2.   

    读入CString中查找
    CString s;
    size_t lpos = s.ReverseFind( ',' );  //0
    size_t rpos = s.ReverseFind('\"' );  //5
    s.Mid(lpos+1,rpos-lpos-2);举个例子int main(int argc, char* argv[])
    {
    CString src = ",\"内蒙古\"))";
    size_t lpos = src.ReverseFind( ',' );  //0
        size_t rpos = src.ReverseFind('\"' );  //5
    CString des = src.Mid(lpos+2,rpos-lpos-2);
    ASSERT(0 == des.Compare("内蒙古"));
    cout << "OK\n";
        return 0;
    }
    输出 
    OK
    Press any key to continue这样就找出来了
      

  3.   

    首先你必须一行一行的读文件中内容进入CString
    然后查找那个固有的逗号',' 与最后那个'"'  这样截取出来就可以了
      

  4.   

    size_t lpos = src.ReverseFind( ',' );  //0
    size_t rpos = src.ReverseFind('\"' );  //5
    这后面//0   //5 内容无参考价值   我贴错了 这rpos其实我的例子是8
      

  5.   

    boost::regex getPri("(new Board)(\\(\"CN\",\"\\d{4}\",\".*?\"\\))",boost::regex::icase);
    boost::smath m;
    这个正则表达式能够匹配new Board(......)中的内容,
    如:
    new Board("CN","3256","天津")然后使用m[2]就能获得("CN","3256","天津");
    再对其进行处理就可以了提取你想要的省份了。