Итак, вот пример структуры XML:C++ увеличить Property Tree Обновление существующего узла по атрибутам Qualifier
<config>
<Ignored>
<Ignore name="Test A">
<Criteria>
<value>actual value</value>
</Criteria>
</Ignore>
<Ignore name="Test B">
<Criteria>
<value>actual value</value>
</Criteria>
</Ignore>
</Ignored>
<config>
Я хотел бы быть в состоянии сделать две вещи:
- выполнить получить непосредственно элемент Test A, не зацикливая все элементы Ignore ... как селектор атрибута.
- Если ничего другого, мне нужен способ обновления либо из элементов Игнорировать и не могу понять это
Должен ли я удалить элемент и создать его заново? Кажется, я не могу найти способ выполнить put, который квалифицирует элемент (там, где много с тем же именем на том же уровне) с помощью атрибута (который был бы уникальным на этом уровне).
Что-то вроде:
pt.put("config.Ignored.Ignore.<xmlattr>.name='Test A'.Criteria.value",some_var)
Или что-нибудь другое, что может достичь конечной цели. Большое спасибо!
Полное раскрытие информации: Я довольно новичок в C++ и, возможно, отсутствует что-то явно очевидное.
Есть ли веская причина, по которой вы используете дерево свойств boost? Возможно, вам лучше использовать реальную библиотеку XML. –
Честно? Нет, я не могу сказать, что у меня есть веская причина. Мне посчастливилось подтолкнуть и подумать, что я попытаюсь использовать то, что там было, и все получилось прекрасно. Не дойдя до этой проблемы. Если бы вы порекомендовали настоящую библиотеку XML, что бы это было? – CapersL
Я бы порекомендовал tinyxml и libxml2 (в зависимости от ваших потребностей). –