2016-10-14 7 views
0

を処理しないことを選択した私は、私が選択して使用しようとしています簡単なExcelの数式(ない私が最終的に使用する式、テストのための簡単なだけで何か)次にXSL:式

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

しかし、参照される変数内の式で作業されていません。

ありがとうございました。ショーン

答えて

0

変数に含める変数が明確ではありません。

xsl:variable命令がss:Formula属性、またはselectと(XSLT 2.0で)asを除く他の属性を持つことができないことは明らかです。

myExprが有効なXPath式でなければなりません
<xsl:variable name="myVar" select="myExpr"/> 

あなたの変数は、のように構築する必要があります。属性を保持する変数を構築するために

<xsl:variable name="myVar"> 
    <xsl:attribute name="ss:Formula">=RC19</xsl:attribute> 
</xsl:variable> 

また、あなたのようなものを使用することができます。

+0

XSL 1.0Iのみを使用して、 "RC19"をテキストとしてではなくExcel式として結果のExcelワークシートに取り込もうとしています。 –

+0

XSL 1.0のみを使用しています。私は "= RC19"を結果として得られるExcelワークシートに、テキストだけでなくExcelの式として取り込もうとしています。私はこれを部分に入れようとしています。上記で提案された変数+属性でさえ、Excelセルに値を設定しません。彼らはまだ空白です。 –

+0

@SeanPerryman AFAIK、数式を持たせるには、 'ss:Formula'属性を' ss:Cell'要素に追加する必要があります。あなたの 'xsl:choose'は' ss:Data'の子です。遅すぎます。 –