Exemplo n.º 1
0
static int
es_gumbo_find_by_tag_name(duk_context *ctx)
{
  es_gumbo_node_t *egn = es_get_native_obj(ctx, 0, &es_native_gumbo_node);
  const char *tagstr = duk_to_string(ctx, 1);
  GumboTag tag = gumbo_tag_enum(tagstr);
  if(tag == GUMBO_TAG_UNKNOWN)
    duk_error(ctx, DUK_ERR_ERROR, "Unknown tag %s", tagstr);
  int idx = 0;
  duk_push_array(ctx);
  es_gumbo_find_by_tag_name_r(egn->node, tag, ctx, &idx, egn->output);
  return 1;
}
Exemplo n.º 2
0
list_t *
gumbo_get_elements_by_tag_name(const char *tag_name, GumboNode *root) {
  GumboTag tag;
  list_t *elements = NULL;

  if (!tag_name || GUMBO_TAG_UNKNOWN == (tag = gumbo_tag_enum(tag_name)))
    return NULL;

  if (!(elements = list_new()))
    return NULL;

  crawl(tag, elements, root);

  return elements;
}