record conv: select return org record if no x-path match YAZ-814
[yaz-moved-to-github.git] / src / record_conv.c
index e6e1cdd..a74b4c5 100644 (file)
@@ -378,17 +378,18 @@ static int convert_select(void *vinfo, WRBUF record, WRBUF wr_error)
             if (xpathObj)
             {
                 xmlNodeSetPtr nodes = xpathObj->nodesetval;
-                wrbuf_rewind(record);
                 if (nodes)
                 {
                     int i;
+                    if (nodes->nodeNr > 0)
+                        wrbuf_rewind(record);
                     for (i = 0; i < nodes->nodeNr; i++)
                     {
                         xmlNode *ptr = nodes->nodeTab[i];
                         if (ptr->type == XML_ELEMENT_NODE)
                             ptr = ptr->children;
-                        if (ptr->type == XML_TEXT_NODE)
-                            for (; ptr; ptr = ptr->next)
+                        for (; ptr; ptr = ptr->next)
+                            if (ptr->type == XML_TEXT_NODE)
                                 wrbuf_puts(record, (const char *) ptr->content);
                     }
                 }