0

Radidxml は初めてなので、ノード値を文字列と比較する方法が見つかりません。

私が理解できる唯一の方法は、それを文字列に出力してから、その値をテストすることです。

if (cell_node->first_node("text:p")) {
  std::string test;
  print(test.begin(), *cell_node->first_node("text:p")->first_node(), 0);
  if (test[0] == '#') {
    std::cout << "TRUE";
    cell_node->first_node("text:p")->remove_first_node();
    rapidxml::xml_node<> *node3 = doc.allocate_node(
            rapidxml::node_data, 0, "append this one"
    );
    cell_node->first_node("text:p")->append_node(node3);
  }
}

他に方法はありますか?私が望んでいた:

cell_node->first_node("text:p")->first_node()->value() == "some string";
4

2 に答える 2

0

ノードを取得したら、name() を呼び出して、その名前を文字列へのポインターとして取得できます。

if (0 == strcmp(node->name(), "#"))
{
    cout << "Found the # node!" << endl;
}
于 2014-02-26T06:33:50.007 に答える