+ for (i = 0; i<*len; i++)
+ if (!d1_isspace(n->u.data.data[i]))
+ break;
+ while (*len && d1_isspace(n->u.data.data[*len - 1]))
+ (*len)--;
+ *len = *len - i;
+ if (*len > 0)
+ return n->u.data.data + i;
+ }
+ if (n->which == DATA1N_tag)
+ n = n->child;
+ else if (n->which == DATA1N_data)
+ n = n->next;
+ else
+ break;
+ }
+ r = "";
+ *len = strlen(r);
+ return r;