LINUX.ORG.RU

Распарсить XML

 , ,


0

1

Привет Кто подскажет, а то я что-то не догоню, есть xml-ка . Парсю ее с помощью boost::property_tree, типа так

BOOST_FOREACH(const auto& value, propertyTree.get_child("rss.channel"))
{

            if (value.first=="item") {
                title=std::move(value.second.get<std::string>("title"));
                if (title.empty()) {
                    continue;
                }
description=std::move(value.second.get<std::string>("description"));
link=std::move(value.second.get<std::string>("link"))
.....................                
int width = value.second.get<int>("media:thumbnail.<xmlattr>.width");
if(width==66) ......
так вот в каждой item есть 2 ноды media:thumbnail и вот я не могу перескочить на 2, т.е. в первую попадаю и все, а как во вторую хз.

З.Ы. Не но могу просто пройтись по дереву рекурсивно, заглядываю на каждый эелемент, но тогда просто будет куча ифов, а хотелось что-то «компактное». В общем может кто-то в курсе как это решить. Thanks.

BOOST_FOREACH(const auto& itemChild, value.second) после условия if (value.first==«item») внутри первого цикла.

Кажется, только так.

Adonai ★★★
()
Последнее исправление: Adonai (всего исправлений: 2)
Ответ на: комментарий от Adonai

Нет, оно не пойдет дальше «куска» media:thumbnail, т.к. это можно сказать поддерево.
В общем я сделал, но хотелось бы услышать и другие варианты

Boy_from_Jungle ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.