Я хочу получить атрибуты xml с помощью libxml2 и сохранить их на карте stl в C++?
Как получить атрибуты в libxml2 и сохранить в карте stl для С++?
comment
Можете ли вы объяснить более подробно, что вы пытаетесь сделать? Кроме того, какой API синтаксического анализа в libXML2 вы используете?
- person Nicol Bolas   schedule 24.10.2011
comment
Я хочу получить все атрибуты для каждого узла (узлов) и сохранить их на карте, чтобы мне было легко получить все атрибуты конкретного узла, который я хочу. Я также создаю класс для каждого узла и сохраняю его в контейнер списка.
- person joi   schedule 24.10.2011
Ответы (1)
Если вы уже проанализировали свою XML-строку/файл и уже имеете узел, для которого хотите сопоставить свойства, это должно быть примерно так:
xmlNodePtr yournode = ...;
std::map<std::string, std::string> yourmap;
for(xmlAttrPtr attr = yournode->properties; attr != NULL; attr = attr->next)
{
yourmap[attr->name] = xmlGetProp(yournode, attr->name);
}
Конечно, пространства имен в этом примере не рассматриваются. Если вы используете пространства имен, вы можете попробовать следующее:
yourmap[attr->name] = xmlGetNsProp(yournode, attr->name, attr->ns->href);
Конечно, вы должны тщательно проверить значения NULL
.
person
Constantinius
schedule
24.10.2011