As with buddies, sites could contain characters which are not valid
in Ids. Also, it is very possible to have duplicate site names.

This uses an XSL generated id to prevent any issues.

Signed-off-by: Martin Long <mar...@longhome.co.uk>
---
 xslt/uddf-export.xslt | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xslt/uddf-export.xslt b/xslt/uddf-export.xslt
index 7f67d81..a5e2266 100644
--- a/xslt/uddf-export.xslt
+++ b/xslt/uddf-export.xslt
@@ -194,12 +194,12 @@
     </xsl:choose>
   </xsl:template>
 
-  <xsl:key name="location" match="location" use="."/>
+  <xsl:key name="location" match="location" use="./@gps"/>
   <xsl:template match="location">
-    <xsl:if test="generate-id() = generate-id(key('location', 
normalize-space(.)))">
+    <xsl:if test="generate-id() = generate-id(key('location', 
normalize-space(./@gps)))">
       <site>
         <xsl:attribute name="id">
-          <xsl:value-of select="."/>
+          <xsl:value-of select="generate-id()"/>
         </xsl:attribute>
         <name>
           <xsl:value-of select="."/>
@@ -253,13 +253,13 @@
           </link>
           </xsl:for-each>
         </xsl:for-each>
-        <xsl:if test="location != ''">
+        <xsl:for-each select="location">
           <link>
             <xsl:attribute name="ref">
-              <xsl:value-of select="location"/>
+              <xsl:value-of 
select="generate-id(key('location',normalize-space(./@gps)))"/>
             </xsl:attribute>
           </link>
-        </xsl:if>
+        </xsl:for-each>
         <xsl:variable name="trimmedweightlist">
           <xsl:for-each select="weightsystem">
             <weight>
-- 
1.9.1

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to