[PATCH 3/7] Use generated Ids for site lookup in UDDF export.

Martin Long martin at longhome.co.uk
Fri Dec 12 16:34:36 PST 2014


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 <martin at 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



More information about the subsurface mailing list