void oss_list_parts_contents_parse(aos_pool_t *p, xmlDocPtr doc, const char *xml_path, aos_list_t *part_list) { int i = 0; xmlNodePtr cur_node; xmlNodeSetPtr nodeset = NULL; oss_list_part_content_t *content; 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) { content = oss_create_list_part_content(p); cur_node = nodeset->nodeTab[i]->xmlChildrenNode; oss_list_parts_content_parse(p, cur_node, content); aos_list_add_tail(&content->node, part_list); } xmlXPathFreeObject(result); }
void oss_list_parts_contents_parse(aos_pool_t *p, mxml_node_t *root, const char *xml_path, aos_list_t *part_list) { mxml_node_t *content_node; oss_list_part_content_t *content; content_node = mxmlFindElement(root, root, xml_path, NULL, NULL, MXML_DESCEND); for ( ; content_node != NULL; ) { content = oss_create_list_part_content(p); oss_list_parts_content_parse(p, content_node, content); aos_list_add_tail(&content->node, part_list); content_node = mxmlFindElement(content_node, root, xml_path, NULL, NULL, MXML_DESCEND); } }