Стимулируйте Property Tree и Xml, анализирующий проблемы

Преимущество CSS - то, что он разделяет дизайн и расположение от содержания.

, Если у Вас есть табличные данные тогда, имеет смысл использовать <TABLE> тег. Если Вы хотите к расположению различные блоки содержания тогда, необходимо использовать <DIV> или <SPAN> и CSS.

7
задан manlio 6 June 2016 в 22:13
поделиться

2 ответа

ParseEntry получает ссылку на каждый из дочерних узлов текущего уровня. Таким образом, вы не можете запрашивать значения, используя имя узла, потому что у вас уже есть дочерний узел. Имя узла хранится в v.first .

Вы можете перебирать все элементы на заданном уровне, используя get_child для выбора уровня, а затем BOOST_FOREACH ] для итерации. Каждый итератор представляет собой пару, представляющую имя узла и данные узла:

using boost::property_tree::wiptree;

wiptree &iterationLevel = bifPropTree.get_child(L"VGHL.StringTable");
BOOST_FOREACH(wiptree::value_type &v, iterationLevel)
{   
  wstring name = v.first;
  wstring value = v.second.get<wstring>(L"");
  wcout << L"Name: " << name << L", Value: " << value.c_str() << endl;
}

Этот код будет печатать:

Имя: Язык, Значение: EN

Имя: DataPath, Значение: .. \\ Data \ \ Resources \\ Strings \\ stringtable.bst

Если вы не хотите выполнять итерацию, вы можете выбрать уровень узла, а затем искать узлы по их имени:

wiptree &iterationLevel = bifPropTree.get_child(L"VGHL.StringTable");
wstring valueLang = iterationLevel.get<wstring>(L"Language");
wstring valuePath = iterationLevel.get<wstring>(L"DataPath");
wcout << valueLang << endl << valuePath << endl;

Этот код будет печатать:

EN

.. \\ Data \\ Resources \\ Strings \\ stringtable.bst

14
ответ дан 6 December 2019 в 15:23
поделиться

Я не использовал дерево свойств, но, вероятно, буду использовать его, поскольку оно выглядит красиво. Однако несколько быстрых наблюдений:

Разве параметр шаблона для get не должен совпадать с типом возвращаемого значения?

VGHL :: String langName = stringTree.get (...);

Но это, скорее всего, не проблема, так как это привело бы к ошибке времени компиляции.

Не уверены, работает ли аргумент L "VGHL.StringTable.Language"?

0
ответ дан 6 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: