Вот моя проблема:
test.xml
<?xml version="1.0" encoding="UTF-8"?>
<server>
<a>true</a>
<b>false</b>
</server>
test.cpp
sampgdk::logprintf("%d", config.get<bool>("server/a"));
sampgdk::logprintf("%d", config.get<bool>("server/b"));
результат:
1
1
Результат должен быть 1 и 0 правильно? Но я всегда получаю 1 в обоих случаях. Это случается только с Assessment_boolean(). Evaluate_number() и Assessment_string() работают отлично.
Вот мой config.get
template<> bool framework::xml::get(std::string xpath) {
if (is_open) {
try {
return pugi::xpath_query(xpath.data()).evaluate_boolean(*ptr);
}
catch (std::exception &e) {
sampgdk::logprintf("XML exception: %s\n", e.what());
}
}
return false;
}
XML
не может быть просто списком тегов, должен быть один единственный тег, который заключает в себе все остальные теги. Например.<mydata><a>true</a><b>false</b></mydata>
. Существует только один тег<mydata />
, окружающий все остальные теги. - person Galik   schedule 17.12.2015