X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=parse-xml.c;h=38be728da55ffd4c719d0c84080bb06df8199df6;hb=5a046d94ea808963b5e6a5d740d360815b0def6d;hp=bc4d4c54661aeb1db4d2462e49625ce8b5997174;hpb=f09266897bfc5983646819d79cf2e3b5160c501e;p=ext%2Fsubsurface.git diff --git a/parse-xml.c b/parse-xml.c index bc4d4c5..38be728 100644 --- a/parse-xml.c +++ b/parse-xml.c @@ -1532,14 +1532,28 @@ static xsltStylesheetPtr get_stylesheet(const char *name) return NULL; } +static struct xslt_files { + const char *root; + const char *file; +} xslt_files[] = { + { "JDiveLog", "jdivelog2subsurface.xslt" }, + { NULL, } +}; + xmlDoc *test_xslt_transforms(xmlDoc *doc) { + struct xslt_files *info = xslt_files; xmlDoc *transformed; xsltStylesheetPtr xslt = NULL; xmlNode *root_element = xmlDocGetRootElement(doc); - if (strcasecmp(root_element->name, "JDiveLog") == 0) { + + while ((info->root) && (strcasecmp(root_element->name, info->root) != 0)) { + info++; + } + + if (info->root) { xmlSubstituteEntitiesDefault(1); - xslt = get_stylesheet("jdivelog2subsurface.xslt"); + xslt = get_stylesheet(info->file); if (xslt == NULL) return doc; transformed = xsltApplyStylesheet(xslt, doc, NULL);