Pugixml - 将xml元素内容转换为C ++数组

时间:2012-07-24 15:05:17

标签: c++ xml xsd tinyxml pugixml

在我的xml文件中,我有如下所示的整数数组:“1 10 -5 150 35”,我正在使用pugixml来解析它。

我知道pugixml提供了诸如as_bool或as_int之类的方法,但是它提供了一种将int数组的字符串表示形式转换为c ++对象的简单方法,还是我必须自己解析和分离字符串?如果是的话,有关如何做的任何建议吗?

1 个答案:

答案 0 :(得分:3)

可能使用std::istringstream。例子:

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>

int main()
{
    {
        std::istringstream in(std::string("1 10 -5 150 35"));
        std::vector<int> my_ints;

        std::copy(std::istream_iterator<int>(in),
                  std::istream_iterator<int>(),
                  std::back_inserter(my_ints));
    }

    // Or:
    {
        int i;
        std::istringstream in(std::string("1 10 -5 150 35"));
        std::vector<int> my_ints;
        while (in >> i) my_ints.push_back(i);
    }
    return 0;
}