]> granicus.if.org Git - docbook-dsssl/commitdiff
When unwrapping; don't produce empty elements if there's no need
authorNorman Walsh <ndw@nwalsh.com>
Tue, 11 Jun 2002 15:25:36 +0000 (15:25 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Tue, 11 Jun 2002 15:25:36 +0000 (15:25 +0000)
xsl/html/html-rtf.xsl

index 6890b5f9ab27a71a3c1336221d3aaf4329cfa207..02d25ed5a71ef0a7cf6e63a20198030b996785ae 100644 (file)
         <xsl:variable name="leading" select="set:leading($nodes,$block)"/>
         <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/>
 
-        <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
-          <xsl:for-each select="$wrap/@*">
-            <xsl:if test="$first != 0 or local-name(.) != 'id'">
-              <xsl:copy/>
-            </xsl:if>
-          </xsl:for-each>
-          <xsl:apply-templates select="$leading" mode="unwrap.p"/>
-        </xsl:element>
+        <xsl:if test="($wrap/@id and $first = 1) or $leading">
+          <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$leading" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
 
         <xsl:apply-templates select="$block" mode="unwrap.p"/>
 
       </xsl:when>
 
       <xsl:otherwise>
-        <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
-          <xsl:for-each select="$wrap/@*">
-            <xsl:if test="$first != 0 or local-name(.) != 'id'">
-              <xsl:copy/>
-            </xsl:if>
-          </xsl:for-each>
-          <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
-        </xsl:element>
+        <xsl:if test="($wrap/@id and $first = 1) or $nodes">
+          <xsl:element name="{local-name($wrap)}" namespace="{namespace-uri($wrap)}">
+            <xsl:for-each select="$wrap/@*">
+              <xsl:if test="$first != 0 or local-name(.) != 'id'">
+                <xsl:copy/>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:apply-templates select="$nodes" mode="unwrap.p"/>
+          </xsl:element>
+        </xsl:if>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:if>