This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

outputing elements correctly .


Hi people,
in spite of some meaningful tips from some of you,i
can't manege to give the elements out properly.I think
there is a basic thing about the processing of
stylesheet i have not yet understood.If i use
templates in my stylesheet,the output of the elements
is correct but without the optional elements i also
want to output with their default values.I have
enclosed the xml-file(for the structure of the
document) and the two stylesheet-files: One with
templates(works correctly but without outputing
optional elements) and the other one which doesn't
work correctly.Can someone please tell me what i'm
doing wrong ?

Thanks.
Auguste

Xml-file:
<?xml version="1.0" encoding="ISO-8859-1"?>

<articleMasterData
xmlns="http://www.Artikelstammdaten.org";
		  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
 		  
xsi:schemaLocation="http://www.Artikelstammdaten.org
ArticleMaDaSch.xsd">

<?xml-stylesheet type="text/xsl"
href="ArticleMaDaXmlToHtml.xsl"?>
<?xml-stylesheet type="text/xsl"
href="ArticleMaDaXmlToAscii.xsl"?>
 
 <telegramNumber>001100</telegramNumber>
 <client>123</client>
 <articleNumber>123456oumar</articleNumber>
 <itemCode>Hamburg-Germany</itemCode>

<quantityPerPackingUnit>12345678</quantityPerPackingUnit>
 <QPPU-Modus>4</QPPU-Modus>
 <batchMode>5</batchMode>
 <quantityUnit>Pa</quantityUnit>
 <deliveryReferenz>00000089</deliveryReferenz>
 <price>134</price>
 <weight>65</weight>
 <height>15</height>
 <width>00000767</width>
 <depth>00000987</depth>
 <bestBeforeDate>20</bestBeforeDate>
 <pickingSequence>7</pickingSequence>
 <actionCode>2</actionCode>
 </articleMasterData> 

Stylesheet with templates:

<?xml version="1.0" encoding="ISO8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
				xmlns:AMD="http://www.Artikelstammdaten.org";
	        		xmlns="http://www.w3.org/TR/REC-html40";>

 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
 <xsl:apply-templates/>
 </xsl:template>

 <xsl:template match="AMD:articleMasterData">
 <xsl:apply-templates/>
 </xsl:template> 
   
	<xsl:template match="AMD:telegramNumber">
	<xsl:value-of select="."/></xsl:template>

	<xsl:template match="AMD:client">
	<xsl:variable name="mandant" select="."/>
	<xsl:number value="$mandant"
format="00000000"/></xsl:template>
		
	<xsl:template match="AMD:articleNumber">
	<xsl:variable name="arNbr" select="."/>
	<xsl:value-of select="substring(concat($arNbr,'      
             '),1,20)"/></xsl:template>
	

	<xsl:template match="AMD:itemCode">
	<xsl:variable name="iCode" select="."/>
	<xsl:value-of select="substring(concat($iCode,'      
                       '),1,30)"/></xsl:template>
	
	<xsl:template match="AMD:itemCode2">
	<xsl:variable name="iCode2" select="."/>
	<xsl:value-of select ="substring(concat($iCode2,'    
                                            
'),1,50)"/></xsl:template>
	
	
	<xsl:template match="AMD:quantityPerPackingUnit">
	<xsl:variable name="qppu" select="."/>
	<xsl:number value="$qppu"
format="00000000"/></xsl:template>
	
	
	<xsl:template match="AMD:QPPU-Modus">
	<xsl:value-of select="."/></xsl:template>

	<xsl:template match="AMD:batchMode">
	<xsl:value-of select="."/></xsl:template>

	<xsl:template match="AMD:quantityUnit">
	<xsl:variable name="qUnit" select="."/>
	<xsl:value-of select="substring(concat($qUnit,' 
'),1,2)"/></xsl:template>

	<xsl:template match="AMD:deliveryReferenz">
	<xsl:variable name="dRef" select="."/>
	<xsl:value-of select="substring(concat($dRef,'       
'),1,8)"/></xsl:template>

	<xsl:template match="AMD:price">
	<xsl:variable name="prix" select="."/>
	<xsl:number value="$prix"
format="00000000"/></xsl:template>
	
	<xsl:template match="AMD:weight">
	<xsl:variable name="poids" select="."/>
	<xsl:number value="$poids"
format="00000000"/></xsl:template>
	
	<xsl:template match="AMD:height">
	<xsl:variable name="haut" select="."/>
	<xsl:number value="$haut"
format="00000000"/></xsl:template>
	
	<xsl:template match="AMD:width">
	<xsl:variable name="largeur" select="."/>
	<xsl:number value="$largeur"
format="00000000"/></xsl:template>
	    
	<xsl:template match="AMD:depth">
	<xsl:variable name="profondeur" select="."/>
	<xsl:number value="$profondeur"
format="00000000"/></xsl:template>
	
	<xsl:template match="AMD:bestBeforeDate">
	<xsl:variable name="bbDate" select="."/>
	<xsl:number value="$bbDate"
format="0000"/></xsl:template>
	
	<xsl:template match="AMD:pickingSequence">
	<xsl:variable name="pseq" select="."/>
	<xsl:number value="$pseq"
format="00"/></xsl:template>
	
	<xsl:template match="AMD:actionCode">
	<xsl:value-of select="."/></xsl:template>
     
</xsl:stylesheet>

stylesheet without template(doesn't work properly):

<?xml version="1.0" encoding="ISO8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
				xmlns:AMD="http://www.Artikelstammdaten.org";
	        		xmlns="http://www.w3.org/TR/REC-html40";>

 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
 <xsl:apply-templates/>
 </xsl:template>

 <xsl:template match="AMD:articleMasterData">
	<xsl:if test="AMD:telegramNumber">
	 <xsl:value-of select="."/>
	</xsl:if>
	<xsl:if test="AMD:client">
	  <xsl:variable name="mandant" select="."/>
	  <xsl:number value="$mandant" format="00000000"/>
	 </xsl:if>
	 <xsl:if test="AMD:articleNumber">	
          <xsl:variable name="arNbr" select="."/>
	  <xsl:value-of select="substring(concat($arNbr,'    
               '),1,20)"/>
         </xsl:if>
	 <xsl:if test="AMD:itemCode">	
          <xsl:variable name="iCode" select="."/>
	  <xsl:value-of select="substring(concat($iCode,'    
                         '),1,30)"/>
	 </xsl:if>
         <xsl:choose>
	 <xsl:when test="AMD:itemCode2">
	  <xsl:variable name="iCode2" select="."/>
	  <xsl:value-of select ="substring(concat($iCode2,'  
                                              
'),1,50)"/>
	</xsl:when>
	<xsl:otherwise>
	 <xsl:text>                                          
       </xsl:text>
	</xsl:otherwise>
        </xsl:choose>
	<xsl:choose>
	 <xsl:when test="AMD:quantityPerPackingUnit">
	  <xsl:variable name="qppu" select="."/>
	  <xsl:number value="$qppu" format="00000000"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00000000</xsl:text>
	 </xsl:otherwise>
        </xsl:choose>
	<xsl:if test="AMD:QPPU-Modus">
	 <xsl:value-of select="."/>
	</xsl:if>
	<xsl:if test="AMD:batchMode">
	<xsl:value-of select="."/>
	</xsl:if>
	<xsl:if test="AMD:quantityUnit">
	  <xsl:variable name="qUnit" select="."/>
	  <xsl:value-of select="substring(concat($qUnit,' 
'),1,2)"/>
	</xsl:if>
	<xsl:choose>
	 <xsl:when test="AMD:deliveryReferenz">
	  <xsl:variable name="dRef" select="."/>
	  <xsl:value-of select="substring(concat($dRef,'     
  '),1,8)"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>        </xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	<xsl:if test="AMD:price">
	  <xsl:variable name="prix" select="."/>
	  <xsl:number value="$prix" format="00000000"/>
	 </xsl:if>
	 <xsl:choose>
	  <xsl:when test="AMD:weight">
	   <xsl:variable name="poids" select="."/>
	   <xsl:number value="$poids" format="00000000"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00000000</xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	<xsl:choose>
	 <xsl:when test="AMD:height">
	  <xsl:variable name="haut" select="."/>
	  <xsl:number value="$haut" format="00000000"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00000000</xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	<xsl:choose>
	 <xsl:when test="AMD:width">
	  <xsl:variable name="largeur" select="."/>
	  <xsl:number value="$largeur" format="00000000"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00000000</xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	<xsl:choose>
	 <xsl:when test="AMD:depth">
	  <xsl:variable name="profondeur" select="."/>
	  <xsl:number value="$profondeur" format="00000000"/>
	 </xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00000000</xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	<xsl:if test="AMD:bestBeforeDate">
	  <xsl:variable name="bbDate" select="."/>
	  <xsl:number value="$bbDate" format="0000"/>
	 </xsl:if>
	<xsl:choose>
	<xsl:when test="AMD:pickingSequence">
	 <xsl:variable name="pseq" select="."/>
	 <xsl:number value="$pseq" format="00"/>
	</xsl:when>
	 <xsl:otherwise>
	  <xsl:text>00</xsl:text>
	 </xsl:otherwise>
	</xsl:choose>
	
	<xsl:if test="AMD:actionCode">
	<xsl:value-of select="."/>
	</xsl:if>
      
     </xsl:template>
</xsl:stylesheet>




__________________________________________________________________
Do You Yahoo!?
Gesendet von Yahoo! Mail - http://mail.yahoo.de

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]