XSL в Excel: выберите не обрабатывать формулу
Я объявил переменную с простой формулой Excel (а не формулой, которую я в конечном итоге буду использовать, просто для тестирования)
<xsl:variable name="nistcci" ss:Formula="=RC19"></xsl:variable>
Затем я пытаюсь использовать команду "Выбрать", чтобы определить, являются ли данные атрибута пустыми, а затем вернуться на основе этого определения.
<Cell ss:StyleID="stig_rules"> <!-- IA Control(s) -->
<Data ss:Type="String">
<xsl:choose>
<xsl:when test="STIG_DATA/VULN_ATTRIBUTE[node()='IA_Controls']/../ATTRIBUTE_DATA != ''">
<xsl:value-of select="STIG_DATA/VULN_ATTRIBUTE[node()='IA_Controls']/../ATTRIBUTE_DATA" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$nistcci"/>
</xsl:otherwise>
</xsl:choose>
</Data>
Это работает, если я делаю что-то простое, как:
<xsl:variable name="nistcci">sean</xsl:variable>
Но не работает с формулой в указанной переменной.
Спасибо за помощь. Шон.
1 ответ
Не ясно, что вы хотите, чтобы ваша переменная содержала.
Совершенно ясно, что xsl:variable
инструкция не может иметь ss:Formula
атрибут или любой другой атрибут, кроме select
и (в XSLT 2.0) as
,
Ваша переменная должна быть построена как:
<xsl:variable name="myVar" select="myExpr"/>
где myExpr
должно быть допустимым выражением XPath.
В качестве альтернативы вы можете использовать что-то вроде:
<xsl:variable name="myVar">
<xsl:attribute name="ss:Formula">=RC19</xsl:attribute>
</xsl:variable>
построить переменную, которая содержит атрибут.