{
size_t i;
for (i = 0; pop->namespaces[i] != NULL; i++)
- xmlFreeNsList (pop->namespaces[i]);
+ xmlFreeNs (pop->namespaces[i]);
free (pop->namespaces);
}
}
size_t i;
for (i = 0; rule->namespaces[i] != NULL; i++)
{
- xmlNs *ns;
- for (ns = rule->namespaces[i]; ns; ns = ns->next)
- xmlXPathRegisterNs (context, ns->prefix, ns->href);
+ xmlNs *ns = rule->namespaces[i];
+ xmlXPathRegisterNs (context, ns->prefix, ns->href);
}
}
}
static char *
-_its_get_content (xmlNode *node, const char *pointer)
+_its_get_content (struct its_rule_list_ty *rules, xmlNode *node,
+ const char *pointer)
{
xmlXPathContext *context;
xmlXPathObject *object;
+ size_t i;
char *result;
context = xmlXPathNewContext (node->doc);
return NULL;
}
+ for (i = 0; i < rules->nitems; i++)
+ {
+ struct its_rule_ty *rule = rules->items[i];
+ if (rule->namespaces)
+ {
+ size_t i;
+ for (i = 0; rule->namespaces[i] != NULL; i++)
+ {
+ xmlNs *ns = rule->namespaces[i];
+ xmlXPathRegisterNs (context, ns->prefix, ns->href);
+ }
+ }
+ }
+
object = xmlXPathNodeEval (node, BAD_CAST pointer, context);
if (!object)
{
{
value = its_value_list_get_value (values, "locNotePointer");
if (value)
- comment = _its_get_content (node, value);
+ comment = _its_get_content (rules, node, value);
}
value = its_value_list_get_value (values, "space");