如何在libxml2中获取属性并保存在stl map中以获取c ++?

时间:2011-10-24 07:23:00

标签: c++ libxml2

我想使用libxml2获取xml的属性并将其保存到C ++中的stl映射中?

1 个答案:

答案 0 :(得分: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值。