Fix default template processing on namespace nodes
authorDaniel Veillard <veillard@redhat.com>
Wed, 8 Aug 2012 07:31:05 +0000 (15:31 +0800)
committerDaniel Veillard <veillard@redhat.com>
Wed, 8 Aug 2012 07:40:56 +0000 (15:40 +0800)
libxslt/transform.c

index 53eefcc..c6df19e 100644 (file)
@@ -4895,7 +4895,10 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
        list = xmlXPathNodeSetCreate(NULL);
        if (list == NULL)
            goto error;
-       cur = node->children;
+       if (node->type != XML_NAMESPACE_DECL)
+           cur = node->children;
+       else
+           cur = NULL;
        while (cur != NULL) {
            switch (cur->type) {
                case XML_TEXT_NODE:
@@ -4944,6 +4947,8 @@ xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
                    if (cur->prev != NULL)
                        cur->prev->next = cur->next;
                    break;
+               case XML_NAMESPACE_DECL:
+                   break;
                default:
 #ifdef WITH_XSLT_DEBUG_PROCESS
                    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,