ПРИМЕР XSLT ПРЕОБРАЗОВАНИЯ ИЗ XML В DBF СТАТУСЫ

Скачать xslt-преобразование

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:output method="xml" indent="yes" encoding="windows-1251" />
  <xsl:decimal-format decimal-separator="." grouping-separator=" "/>    

<xsl:template match="/">
 
	 <СписокФайл>	
		<Файл>			
									
		<xsl:attribute name="ИмяФайла"> 			
			<xsl:value-of select="'status.dbf'"/>		
    	</xsl:attribute>
		<Формат>
			<Столбец Номер="1" Название="DocData" Тип="Char(100)"/>
			<Столбец Номер="2" Название="DocID" Тип="Char(100)"/>
			<Столбец Номер="3" Название="DocName" Тип="Char(100)" />
			<Столбец Номер="4" Название="DocNumber" Тип="Char(100)" />
			<Столбец Номер="5" Название="ReceiverInn" Тип="Char(100)" />
			<Столбец Номер="6" Название="ReceiverKpp" Тип="Char(100)" />
			<Столбец Номер="7" Название="ReceiverName" Тип="Char(100)" />
			<Столбец Номер="8" Название="DocDirection" Тип="Char(100)" />			 
			<Столбец Номер="9" Название="StatusNumber" Тип="Char(100)" />
			<Столбец Номер="10" Название="StatusName" Тип="Char(100)" />			
		</Формат>	 	
      		<xsl:call-template name="Dbf"/>        		      		 	
	 	</Файл>	 	
		</СписокФайл>
	</xsl:template>		

<xsl:template name="Dbf" >  
<Строка>
<xsl:attribute name="Номер"> 
			<xsl:value-of select="position()"/>	
    </xsl:attribute>
<Столбец>
	<xsl:attribute name="Значение"> 	
	<xsl:value-of select="Документ/@Дата"/>	
    </xsl:attribute>
	<xsl:attribute name="Номер"> 		
		<xsl:value-of select="1"/>		
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'DocData'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 	
	<xsl:value-of select="Документ/@Идентификатор"/>	
    </xsl:attribute>
	<xsl:attribute name="Номер"> 		
		<xsl:value-of select="2"/>		
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'DocID'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 	
	<xsl:value-of select="Документ/@Название"/>	
    </xsl:attribute>
	<xsl:attribute name="Номер"> 		
		<xsl:value-of select="3"/>		
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'DocName'"/>		
    </xsl:attribute>
</Столбец>

<Столбец>
	<xsl:attribute name="Значение"> 	
	<xsl:value-of select="Документ/@Номер"/>	
    </xsl:attribute>
	<xsl:attribute name="Номер"> 		
		<xsl:value-of select="4"/>		
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'DocNumber'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
		<xsl:value-of select="//Контрагент/СвЮЛ/@ИНН"/>
		<xsl:value-of select="//Контрагент/СвФЛ/@ИНН"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:number value="5"/>
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'ReceiverInn'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
		<xsl:value-of select="//Контрагент/СвЮЛ/@КПП"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:number value="6"/>
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'ReceiverKpp'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
	<xsl:value-of select="//Контрагент/СвЮЛ/@Название"/>
	<xsl:value-of select="//Контрагент/СвФЛ/@Название"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:number value="7"/>
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'ReceiverName'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
		<xsl:value-of select="Документ/@Направление"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:value-of select="8"/>	
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'DocDirection'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
		<xsl:value-of select="//Состояние/@Код"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:value-of select="9"/>	
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'StatusNumber'"/>		
    </xsl:attribute>
</Столбец>
<Столбец>
	<xsl:attribute name="Значение"> 
		<xsl:value-of select="//Состояние/@Название"/>
    </xsl:attribute>
	<xsl:attribute name="Номер"> 
		<xsl:value-of select="10"/>	
    </xsl:attribute>
	<xsl:attribute name="Название"> 		
		<xsl:value-of select="'StatusName'"/>		
    </xsl:attribute>
</Столбец>	
</Строка>
</xsl:template>  
  		
 <xsl:template name="dop_prob">
 	<xsl:param name="str"/>
	<xsl:param name="str_dlina"/>
<xsl:choose>
	<xsl:when test="string-length($str) < number($str_dlina)">
	<xsl:variable name="str_" select="concat($str,' ')"/>
		<xsl:call-template name="dop_prob">
			<xsl:with-param name="str" select="$str_"/>
			<xsl:with-param name="str_dlina" select="$str_dlina"/>
		</xsl:call-template>
	</xsl:when>
	<xsl:otherwise>
		<xsl:value-of select="$str"/>
	</xsl:otherwise>
</xsl:choose>
 </xsl:template>	
</xsl:stylesheet>
0
0
Оставьте свой отзыв:
ОТПРАВИТЬ