void oss_list_objects_common_prefix_parse(aos_pool_t *p, xmlDocPtr doc, const char *xml_path, aos_list_t *common_prefix_list) { int i = 0; xmlNodePtr cur_node; xmlNodeSetPtr nodeset = NULL; oss_list_object_common_prefix_t *common_prefix; xmlChar *xpath; xmlXPathObjectPtr result; xpath = (xmlChar*) xml_path; result = get_nodeset(doc, xpath); if (result == NULL) { return; } nodeset = result->nodesetval; for ( ; i < nodeset->nodeNr; ++i) { common_prefix = oss_create_list_object_common_prefix(p); cur_node = nodeset->nodeTab[i]->xmlChildrenNode; oss_list_objects_prefix_parse(p, cur_node, common_prefix); aos_list_add_tail(&common_prefix->node, common_prefix_list); } xmlXPathFreeObject(result); }
void oss_list_objects_common_prefix_parse(aos_pool_t *p, mxml_node_t *xml_node, const char *xml_path, aos_list_t *common_prefix_list) { mxml_node_t *node; oss_list_object_common_prefix_t *common_prefix; node = mxmlFindElement(xml_node, xml_node, xml_path, NULL, NULL, MXML_DESCEND); for ( ; node != NULL; ) { common_prefix = oss_create_list_object_common_prefix(p); oss_list_objects_prefix_parse(p, node, common_prefix); aos_list_add_tail(&common_prefix->node, common_prefix_list); node = mxmlFindElement(node, xml_node, xml_path, NULL, NULL, MXML_DESCEND); } }