/ / XSL - Upravte export XML do Excelu a dynamicky pridajte tučné štýly - xml, excel, xslt

XSL - Upraviť export XML do programu Excel a pridať tučný štýl dynamicky - xml, excel, xslt

Snažím sa modifikovať súbor XML pomocou súboru XSLvytvoriť tabuľku programu Excel - mám základy tejto práce, ale teraz ju musím trochu prispôsobiť. Šiesty stĺpec v súbore XML obsahuje pre niektoré záznamy hodnotu 1 a chcel by som upraviť výstup tak, aby sa použil výrazný štýl do všetkých riadkov, kde sa pole FlagBold / 6. stĺpec rovná 1.

Tu je môj aktuálny XML:

<?xml version="1.0" encoding="utf-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="06-06-2017" NAME="FileMaker" VERSION="ProAdvanced 16.0.2"/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ColumnA" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ColumnB" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ColumnC" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ColumnD" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ColumnE" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FlagBold" TYPE="TEXT"/>
</METADATA>
<RESULTSET FOUND="6">
<ROW MODID="0" RECORDID="900">
<COL>
<DATA>Created: 15-August-2017</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>1</DATA>
</COL>
</ROW>
<ROW MODID="0" RECORDID="901">
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA/>
</COL>
</ROW>
<ROW MODID="1" RECORDID="902">
<COL>
<DATA>Name</DATA>
</COL>
<COL>
<DATA>ID</DATA>
</COL>
<COL>
<DATA>Category</DATA>
</COL>
<COL>
<DATA>Number</DATA>
</COL>
<COL>
<DATA>Amount</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
</ROW>
<ROW MODID="1" RECORDID="904">
<COL>
<DATA>Acme Corp Pty Ltd</DATA>
</COL>
<COL>
<DATA>123456</DATA>
</COL>
<COL>
<DATA>Category 1</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>$456.78</DATA>
</COL>
<COL>
<DATA/>
</COL>
</ROW>
<ROW MODID="1" RECORDID="905">
<COL>
<DATA>Demo Company Pty Ltd</DATA>
</COL>
<COL>
<DATA>987654</DATA>
</COL>
<COL>
<DATA>Category 2</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>$789.32</DATA>
</COL>
<COL>
<DATA/>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>

V mojom súbore XSL mám tento štýl:

        <Style ss:ID="MyTitleStyle">
<Alignment ss:WrapText="0" />
<Font  ss:Bold="1"/>
</Style>

a spracovávam riadky tu:

<xsl:for-each select="fmp:FMPXMLRESULT/fmp:RESULTSET/fmp:ROW">
<Row>
<xsl:for-each select="fmp:COL">
<Cell>
<xsl:if test="fmp:COL[6]/fmp:DATA = 1">
<xsl:attribute name="ss:StyleID">MyTitleStyle</xsl:attribute>
</xsl:if>
<Data ss:Type="String">
<xsl:value-of select="." />
</Data>
</Cell>
</xsl:for-each><!-- next column -->
</Row>
</xsl:for-each><!-- next row -->

ale v vytvorenom tabuľkovom súbore .xls sa mi nedarí odvážny štýl a nie som si istý, čo sa tu tu deje?

odpovede:

0 pre odpoveď č. 1

Test v:

<xsl:if test="fmp:COL[6]/fmp:DATA = 1">

nikdy sa nevráti pravda z kontextu:

<xsl:for-each select="fmp:COL">

Zmeňte to na:

<xsl:if test="../fmp:COL[6]/fmp:DATA = 1">