我想使用libxml2获取xml的属性并将其保存到C ++中的stl映射中?
答案 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
值。