проблема для каждого / xsl: value-of select = "." fmpxmlresult - PullRequest
0 голосов
/ 21 июня 2020

Я экспортирую в XML одну таблицу с одним связанным полем, этот файл содержит cprod, xprod, et c., А при экспорте таблицы отображается только «cprod» (я включаю в поле экспорта ... cprod COL (49) в xslt, xprod COL (5O) ... ET C ... Я не знаю, как это сделать.

My xslt:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:fm="http://www.filemaker.com/fmpxmlresult"
exclude-result-prefixes="fm">
  <xsl:output version='1.0' encoding='UTF-8' indent='yes' method='xml' />
  <xsl:template match="/">
  <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe>
        <xsl:for-each select="fm:FMPXMLRESULT/fm:RESULTSET/fm:ROW">
        
            <xsl:attribute name="Id"><xsl:value-of select="./fm:COL[2]/fm:DATA" /></xsl:attribute>
            <xsl:attribute name="versao"><xsl:value-of select="./fm:COL[1]/fm:DATA" /></xsl:attribute>
             
             <ide>
                    <cUF><xsl:value-of select="./fm:COL[3]/fm:DATA"/></cUF>
                    <cNF><xsl:value-of select="./fm:COL[4]/fm:DATA"/></cNF>
                    <natOp><xsl:value-of select="./fm:COL[5]/fm:DATA"/></natOp>
                    
              </ide>
              <emit>
                <CNPJ><xsl:value-of select="./fm:COL[23]/fm:DATA"/></CNPJ>
                <xNome><xsl:value-of select="./fm:COL[24]/fm:DATA"/></xNome>
                    <enderEmit>
                        <xLgr><xsl:value-of select="./fm:COL[25]/fm:DATA"/></xLgr>
                        <nro><xsl:value-of select="./fm:COL[26]/fm:DATA"/></nro>
                        <xBairro><xsl:value-of select="./fm:COL[27]/fm:DATA"/></xBairro>
                    </enderEmit>
                     <IE><xsl:value-of select="./fm:COL[35]/fm:DATA"/></IE>
                     <CRT><xsl:value-of select="./fm:COL[36]/fm:DATA"/></CRT>
              </emit>
              <dest>
                <CNPJ><xsl:value-of select="./fm:COL[37]/fm:DATA"/></CNPJ>
                <xNome><xsl:value-of select="./fm:COL[38]/fm:DATA"/></xNome>
                <enderDest>
                        <xLgr><xsl:value-of select="./fm:COL[39]/fm:DATA"/></xLgr>
                        <nro><xsl:value-of select="./fm:COL[40]/fm:DATA"/></nro>
                        
                 </enderDest>
              </dest>
               
               <!-- relationed file, and problem-->
                    <xsl:for-each select="fm:COL[49]/fm:DATA">
                       <det nItem="{position()}" >
                            <prod>
                                <cprod><xsl:value-of select="."/></cprod>
                           <!--<CEAN><xsl:value-of select=?????????????/></CEAN>
                                <xprod><xsl:value-of select=?????????????/></xprod>-->
                            </prod>
                       </det>
                    </xsl:for-each>
        </xsl:for-each>
 
    </infNFe>
    </NFe>
   </xsl:template>
</xsl:stylesheet>

Мой результат:

<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe35200626697785000197550010000000011248668583" versao="4.0">
<ide>
<cUF>35</cUF>
<cNF>24866858</cNF>
<natOp>5902 - 5124 - Retorno / Ind</natOp>
</ide>
<emit>
<CNPJ>26697785000197</CNPJ>
<xNome>M. D. M. LIMA CONFECCOES ME</xNome>
<enderEmit>
<xLgr>RUA GERALDO COSTA MANSO</xLgr>
<nro>96</nro>
<xBairro>JARDIM NOSSA SENHORA DO CARMO</xBairro>
</enderEmit>
<IE>141540863116</IE>
<CRT>1</CRT>
</emit>
<dest>
<CNPJ>06311274000501</CNPJ>
<xNome>TEXTIL MN COMERCIO DE TECIDOS E CONFECCOES LTDA</xNome>
<enderDest>
<xLgr>RUA ALMIRANTE BARROSO</xLgr>
<nro>851</nro>
</enderDest>
</dest>
<det nItem="1">
<prod>
   <cprod>000000001000042802</cprod>
   <cEAN>000000001000042802</cEAN>
   <xProd>000000001000042802</NCM>
</prod>
</det>
<det nItem="2">
<prod>
    <cprod>7852525654654</cprod>
    <cEAN>7852525654654</cEAN>
    <xProd>7852525654654</NCM>
</prod>
</det>
<det nItem="3">
<prod>
    <cprod>456522kfslkdfsjlfj/cprod>
    <cEAN>456522kfslkdfsjlfj</cEAN>
    <xProd>456522kfslkdfsjlfj</NCM>
</prod>
</det>
</infNFe>

Но мне нужен следующий результат:

<!-- this first part result is ok -->
<det nItem="1">
 <prod>
   <cProd>000000001000042801</cProd>
   <cEAN>SEM GTIN</cEAN>
   <xProd>CALCAS FEMININAS CORTADAS, 68% ALGODAO, 29% POLIESTER E 3% ELASTANO</xProd>
   
   </prod>
<det nItem="2">
 <prod>
   <cProd>7852525654654</cProd>
   <cEAN>SEM GTIN</cEAN>
   <xProd>CALCA MASCULINA</xProd>
   
   </prod>
<det nItem="3">
 <prod>
   <cProd>456522kfslkdfsjlfj</cProd>
   <cEAN>SEM GTIN</cEAN>
   <xProd>CALCA</xProd>
   </prod>
</det>

полный без фильтрации

<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="07-03-2018" NAME="FileMaker" VERSION="ProAdvanced 17.0.2"/>
<DATABASE DATEFORMAT="D/m/yyyy" LAYOUT="" NAME="GestNfe2020.fmp12" RECORDS="1" TIMEFORMAT="k:mm:ss "/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="versao" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="idxml" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cUF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cNF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="natOp" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="mod" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Serie" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="nNF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="dhEmi" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="dhSaiEnt" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="tpNF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="idDest" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cMunFG" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="tpImp" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="tpEmis" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cDV" TYPE="NUMBER"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="tpAmb" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="finNFe" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="indFinal" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="indPres" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="procEmi" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="verProc" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::CNPJ" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::xNome" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::xLgr" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::nro" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::xBairro" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::cMun" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cMunFG para Emitiente::municipio" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="UF para Emitiente::UF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::CEP" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::cPais" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cPais para Emitiente::PAIS" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::fone" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::IE" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Emitiente::CRT" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::CNPJ" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::xNome" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::xLgr" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::nro" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::xBairro" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::cMun" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::xMun" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::UF" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::CEP" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::cPais" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="cPais para Destinatario::PAIS" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Destinatarios::fone" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="LINEAS::cProd" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="LINEAS::cEAN" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="LINEAS::xProd" TYPE="TEXT"/>
</METADATA>
<RESULTSET FOUND="1">
<ROW MODID="6" RECORDID="219">
<COL>
<DATA>4.0</DATA>
</COL>
<COL>
<DATA>NFe35200626697785000197550010000000011248668583</DATA>
</COL>
<COL>
<DATA>35</DATA>
</COL>
<COL>
<DATA>24866858</DATA>
</COL>
<COL>
<DATA>5902 - 5124 - Retorno / Ind</DATA>
</COL>
<COL>
<DATA>55</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>2020-06-19T03:30:26-03:00</DATA>
</COL>
<COL>
<DATA>2020-06-19T03:30:26-03:00</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>3550308</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>3</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>0</DATA>
</COL>
<COL>
<DATA>9</DATA>
</COL>
<COL>
<DATA>0</DATA>
</COL>
<COL>
<DATA>GestNfev.3.4.0</DATA>
</COL>
<COL>
<DATA>26697785000197</DATA>
</COL>
<COL>
<DATA>M. D. M. LIMA CONFECCOES ME</DATA>
</COL>
<COL>
<DATA>RUA GERALDO COSTA MANSO</DATA>
</COL>
<COL>
<DATA>96</DATA>
</COL>
<COL>
<DATA>JARDIM NOSSA SENHORA DO CARMO</DATA>
</COL>
<COL>
<DATA>3550308 </DATA>
</COL>
<COL>
<DATA>São Paulo</DATA>
</COL>
<COL>
<DATA>SP</DATA>
</COL>
<COL>
<DATA>08270580</DATA>
</COL>
<COL>
<DATA>0000</DATA>
</COL>
<COL>
<DATA>otro</DATA>
</COL>
<COL>
<DATA>04431414900</DATA>
</COL>
<COL>
<DATA>141540863116</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>06311274000501</DATA>
</COL>
<COL>
<DATA>TEXTIL MN COMERCIO DE TECIDOS E CONFECCOES LTDA</DATA>
</COL>
<COL>
<DATA>RUA ALMIRANTE BARROSO</DATA>
</COL>
<COL>
<DATA>851</DATA>
</COL>
<COL>
<DATA>BRAS</DATA>
</COL>
<COL>
<DATA>3550308</DATA>
</COL>
<COL>
<DATA>SAO PAULO</DATA>
</COL>
<COL>
<DATA>SP</DATA>
</COL>
<COL>
<DATA>03025-001</DATA>
</COL>
<COL>
<DATA>1058</DATA>
</COL>
<COL>
<DATA>BRASIL</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>000000001000042802</DATA>
<DATA>7852525654654</DATA>
<DATA>456522kfslkdfsjlfj</DATA>
</COL>
<COL>
<DATA>SEM GTIN</DATA>
<DATA/>
<DATA/>
</COL>
<COL>
<DATA>CALCAS MASCULINA CORTADAS, 74% ALGODAO, 12% POLIESTER, 12% MODAL E 2%</DATA>
<DATA>CALCAS MASCULINA </DATA>
<DATA>CALCAS</DATA>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>

1 Ответ

0 голосов
/ 21 июня 2020

Я считаю, что вам следует делать:

            <xsl:for-each select="fm:COL[49]/fm:DATA">
                <xsl:variable name="i" select="position()" />
                <det nItem="{$i}" >
                    <prod>
                        <cprod>
                            <xsl:value-of select="."/>
                        </cprod>
                        <CEAN>
                            <xsl:value-of select="../../fm:COL[50]/fm:DATA[$i]"/>
                       </CEAN>
                        <xprod>
                            <xsl:value-of select="../../fm:COL[51]/fm:DATA[$i]"/>
                        </xprod>
                    </prod>
                </det>
            </xsl:for-each>

Однако у вас есть пустые значения в COL[50] для DATA[2] и DATA[3], и я не понимаю, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...