2016-06-27 9 views
1

Мы имеем следующие строки XSLКак сделать строку XSL невидимой?

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

Но если экспорт продуктов является нулевым или количество равно 0, я хочу, чтобы сделать видимость этого Роу ложь. Как я могу это достичь? Кстати шаблон, как следующее, если это необходимо:

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

Код позади:

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

Так что делает его невидимым, должно быть во время выполнения, я думаю. Или может быть другое решение.

Обычно файл слово так:

enter image description here

И мы, как эти строки, чтобы не появляться, если они не имеют никакой ценности.

Фактически мы можем добиться этого с помощью изменения шаблонов, но таким образом мы должны создать тысячи шаблонов, так как есть много возможностей.

+0

Можете ли вы привести пример того, как вы хотите, чтобы результат выглядел, когда строка была установлена ​​как невидимая. Похоже, вы на самом деле выводете WordprocessingML, так что, строго говоря, это не «строка XSL», а строка в XML-документе Word 2003. Благодаря! –

+0

@TimC Я редактировал вопрос, но я не уверен, что это то, что вы хотели, поскольку я не очень хорошо знаком с XSLT ... – jackjop

+0

Прежде чем писать XSLT, вам нужно знать, что вы хотите, чтобы результат выглядел , В вашем случае вы выводите XML, используемый Word. Представьте, что вы использовали Notepad для создания XML вручную. Как бы выглядел этот XML? Благодаря! –

ответ

1

Вы можете использовать xsl:if, например.

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

yep, определенно ... спасибо! – jackjop

Смежные вопросы