2016-06-27 15 views
1

WirWie mache ich eine XSL-Reihe unsichtbar?

folgende XSL-Reihe haben
<w:tr wsp:rsidR="00EC796A" wsp:rsidRPr="00E83E5E" wsp:rsidTr="00CA49A2"> 
    <w:tc> 
     <w:p wsp:rsidR="00EC796A" wsp:rsidRPr="00E83E5E" wsp:rsidRDefault="007D26AB" wsp:rsidP="00CA49A2"> 
      <w:r wsp:rsidRPr="00E83E5E"> 
       <w:t> 
        <xsl:text>EXPORT PRODUCTS</xsl:text> 
       </w:t> 
      </w:r> 
     </w:p> 
    </w:tc> 
    <w:tc> 
     <xsl:apply-templates select="ns0:Export_Products" /> 
    </w:tc> 
</w:tr> 

Aber wenn Export Produkte null ist oder Zählwert 0, I dieser Reihe die Sichtbarkeit falsch machen wollen. Wie kann ich das erreichen? Durch die Art und Weise ist die Vorlage wie folgt, wenn nötig:

<xsl:template match="/ns0:ReportWordData/ns0:Export_Report/ns0:Export_Products"> 
    <ns0:Export_Products> 
     <xsl:for-each select="@ns0:*|@*[namespace-uri()='']"> 
     <xsl:attribute name="{name()}" namespace="{namespace-uri()}"> 
      <xsl:value-of select="." /> 
     </xsl:attribute> 
     </xsl:for-each> 
     <xsl:apply-templates select="ns0:Product" /> 
    </ns0:Export_Products> 
</xsl:template> 

-Code hinter:

Dim myXslTransform As New XslCompiledTransform(False) 
myXslTransform.Load(GetType(TemplateForExport)) 
myXslTransform.Transform(xmlFilePath, wordFilePath) 

Also sollte ich glaube, zur Laufzeit sei es unsichtbar. Oder es kann eine andere Lösung geben.

Normalerweise ist die Word-Datei ist wie folgt:

enter image description here

Und wir mögen diese Zeilen nicht angezeigt, wenn sie keinen Wert haben.

Eigentlich können wir dies mit wechselnden Vorlagen erreichen, aber auf diese Weise müssen wir Tausende von Vorlagen erstellen, da es viele Möglichkeiten gibt.

+0

Können Sie ein Beispiel geben, wie die Ausgabe aussehen soll, wenn die Zeile so eingestellt wurde, dass sie unsichtbar ist. Es sieht so aus, als ob Sie WordprocessingML hier ausgeben, streng genommen handelt es sich also nicht um eine "XSL-Zeile", sondern um eine Zeile in einem Word 2003-XML-Dokument. Vielen Dank! –

+0

@TimC Ich habe die Frage bearbeitet, aber ich bin nicht sicher, ob es das ist, was Sie wollten, da ich XSLT nicht sehr gut kenne ... – jackjop

+0

Bevor Sie irgendeine XSLT schreiben, müssen Sie wissen, wie die Ausgabe aussehen soll . In Ihrem Fall geben Sie XML aus, das von Word verwendet wird. Stellen Sie sich vor, Sie verwenden Notepad, um das XML manuell zu erstellen. Wie würde dieses XML aussehen? Vielen Dank! –

Antwort

1

Sie können xsl:if, z.

<xsl:if test="ns0:Product"> 
    <xsl:text>EXPORT PRODUCTS</xsl:text> 
</xsl:if> 
+1

Ja, definitiv ... danke! – jackjop