encapsulating all record fields in a xsl:for-each to prevent emitting empty
authorMarc Cromme <marc@indexdata.dk>
Wed, 18 Apr 2007 07:41:03 +0000 (07:41 +0000)
committerMarc Cromme <marc@indexdata.dk>
Wed, 18 Apr 2007 07:41:03 +0000 (07:41 +0000)
<md-title> elements. Now all emitted elements have always content, and the final web client JS does not break any more.

etc/marc21.xsl

index 563bab7..6a16b1d 100644 (file)
        <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
       </xsl:attribute>
 
-      <pz:metadata type="id">
-        <xsl:value-of select="marc:controlfield[@tag='001']"/>
-      </pz:metadata>
+      <xsl:for-each select="marc:controlfield[@tag='001']">
+        <pz:metadata type="id">
+          <xsl:value-of select="."/>
+        </pz:metadata>
+      </xsl:for-each>
 
       <xsl:for-each select="marc:datafield[@tag='010']">
         <pz:metadata type="lccn">
        </pz:metadata>
       </xsl:for-each>
 
-      <pz:metadata type="title">
-       <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
-       <xsl:text> </xsl:text>
-       <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='b']"/>
-      </pz:metadata>
+      <xsl:for-each select="marc:datafield[@tag='245']">
+        <pz:metadata type="title">
+          <xsl:value-of select="marc:subfield[@code='a']"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="marc:subfield[@code='b']"/>
+        </pz:metadata>
+      </xsl:for-each>
 
       <xsl:for-each select="marc:datafield[@tag='020']">
         <pz:metadata type="isbn">