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>

построить переменную, которая содержит атрибут.

Другие вопросы по тегам