c# - XSL more template -


i have source xml file , xsl code edit output xml file. have source xml file:

<root> <firma kod_firmy="tomášov" stredisko="" ico="666666" dic="cz66666   " nazev="rest" jmeno="" mesto="zl" ulice="uomlom" psc="76007">   <faktura kod_odberatel="tomášov" datum_porizeni="2014-06-12" cas_porizeni="15:34:29" datum_vystaveni="2014-06-12" datum_zdanitelneho_plneni="2014-06-12" datum_splatnosti="2014-06-26" cena_cenik="2310.72" mnozstvi="24.000">     <dane dph="21.00" sklad_cena="968.365" />     <dane dph="0.00"  sklad_cena="0.000" />   </faktura> </firma> </root> 

this xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform">                       <xsl:output method="xml" encoding="windows-1250" indent="no"/>  <xsl:template match="root/firma"> <moneydata>      <xsl:apply-templates select="@nazev|faktura/@datum_porizeni|faktura/@datum_splatnosti|faktura/@datum_zdanitelneho_plneni|faktura/@cas_porizeni"/> </moneydata>                          </xsl:template>      <xsl:template match="firma/@nazev">   <xsl:attribute name="kodagendy"><xsl:value-of select="."/></xsl:attribute>    </xsl:template>     <xsl:template match="firma/faktura/@datum_porizeni">   <xsl:attribute name="hosprokod"><xsl:value-of select="."/></xsl:attribute>    </xsl:template>     <xsl:template match="firma/faktura/@datum_splatnosti">   <xsl:attribute name="hosprokdo"><xsl:value-of select="."/></xsl:attribute>    </xsl:template>     <xsl:template>   <xsl:attribute name="description">faktury přijaté vydané</xsl:attribute>    </xsl:template>     <xsl:template>   <xsl:attribute name="expzkratka">_fp+fv</xsl:attribute>    </xsl:template>     <xsl:template match="firma/faktura/@datum_zdanitelneho_plneni">   <xsl:attribute name="expdate"><xsl:value-of select="."/></xsl:attribute>    </xsl:template>     <xsl:template match="firma/faktura/@cas_porizeni">   <xsl:attribute name="exptime"><xsl:value-of select="."/></xsl:attribute>    </xsl:template>     <xsl:template>   <xsl:attribute name="vyberzaznamu">0</xsl:attribute>    </xsl:template>     <xsl:template match="/">     <xsl:for-each select="root/firma">           <seznamfaktvyd>           <faktvyd>             <doklad><xsl:value-of select="faktura/dane/@sklad_cena"/></doklad>           </faktvyd>         </seznamfaktvyd>     </xsl:for-each>  </xsl:template>     </xsl:stylesheet> 

and example of output:

<seznamfaktvyd>   <faktvyd>     <doklad>968.365</doklad>   </faktvyd> </seznamfaktvyd> 

but need output:

<?xml version="1.0" encoding="windows-1250"?> <moneydata kodagendy="somedata" hosprokod="somedata" hosprokdo="somedata" description="faktury přijaté vydané" expzkratka="_fp+fv" expdate="somedata" exptime="somedata" vyberzaznamu="0">   <seznamfaktvyd>     <faktvyd>       <doklad>968.365</doklad>       <doklad>0.000</doklad>     </faktvyd>   </seznamfaktvyd> </moneydata> 

have ideas, how this? thanks

how simple one?

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/xsl/transform">                       <xsl:output method="xml" version="1.0" encoding="windows-1250" indent="yes"/> <xsl:strip-space elements="*"/>  <xsl:template match="firma">     <moneydata          kodagendy="{@nazev}"          hosprokod="{faktura/@datum_porizeni}"          hosprokdo="{faktura/@datum_splatnosti}"          description="faktury přijaté vydané"          expzkratka="_fp+fv"          expdate="{faktura/@datum_zdanitelneho_plneni}"          exptime="{faktura/@cas_porizeni}"          vyberzaznamu="0">         <seznamfaktvyd>             <faktvyd>                 <xsl:for-each select="faktura/dane">                     <doklad><xsl:value-of select="@sklad_cena"/></doklad>                 </xsl:for-each>             </faktvyd>         </seznamfaktvyd>     </moneydata> </xsl:template>     </xsl:stylesheet> 

note output:

<?xml version="1.0" encoding="windows-1250"?> <moneydata kodagendy="rest" hosprokod="2014-06-12" hosprokdo="2014-06-26" description="faktury přijaté vydané" expzkratka="_fp+fv" expdate="2014-06-12" exptime="15:34:29" vyberzaznamu="0">    <seznamfaktvyd>       <faktvyd>          <doklad>968.365</doklad>          <doklad>0.000</doklad>       </faktvyd>    </seznamfaktvyd> </moneydata> 

is different output have requested: contains actual values source document, instead of "somedata". ;-)


Comments

Popular posts from this blog

google api - Incomplete response from Gmail API threads.list -

Installing Android SQLite Asset Helper -

Qt Creator - Searching files with Locator including folder -