/ / XSL - XML ​​एक्सपोर्ट को संशोधित करें बोल्ड स्टाइल को गतिशील रूप से जोड़ने के लिए एक्सेल - xml, एक्सेल, xslt

एक्सएसएल - बोल्ड स्टाइल गतिशील रूप से जोड़ने के लिए एक्सएमएल एक्सएमएल एक्सपोर्ट को संशोधित करें - एक्सएमएल, एक्सेल, एक्सएसएलटी

मैं XSL फ़ाइल का उपयोग करके XML फ़ाइल को संशोधित करने का प्रयास कर रहा हूंएक एक्सेल स्प्रेडशीट बनाने के लिए - मुझे इस काम की मूल बातें मिलीं, लेकिन अब इसे थोड़ा अनुकूलित करने की आवश्यकता है। XML फ़ाइल में 6 वें कॉलम में कुछ रिकॉर्ड्स के लिए 1 है और मैं बोल्ड स्टाइल लागू करने के लिए आउटपुट को संशोधित करना चाहूंगा। किसी भी पंक्तियों के लिए जहाँ फ्लैगबॉल्ड फ़ील्ड / 6 वीं कॉल 1 के बराबर है।

यहाँ मेरा वर्तमान 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>

मेरी XSL फ़ाइल में मेरे पास यह शैली है:

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

और मैं यहाँ पंक्तियों को संसाधित कर रहा हूँ:

<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 -->

लेकिन मुझे .xls स्प्रेडशीट फ़ाइल में कोई बोल्ड स्टाइल नहीं मिल रही है, जो कि बनाई गई है और मुझे यकीन नहीं है कि मैं यहां क्या गलत कर रहा हूं?

उत्तर:

जवाब के लिए 0 № 1

में परीक्षण:

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

के संदर्भ से सच कभी नहीं लौटेगा:

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

इसे यहां बदलें:

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