每个不工作的XSL

  • 本文关键字:XSL 工作 xml xslt-1.0
  • 更新时间 :
  • 英文 :


我有一个XSL变量qwe,它包含如下的xml

 <Column1>
  <TT TXT1="Skriveartikler" />
  <TT TXT1="Kridt" />
  <TT TXT1="Tavlekridt" />
</Column1>

for循环是这样的

         <xsl:for-each select="$qwe/Column1/TT">
            <textarea>
              <xsl:value-of select="."/>
            </textarea>
        </xsl:for-each>

但是代码执行从来不发生在循环内。表示不打印文本区域。有谁能给出理由吗?

<xsl:value-of select="."/>

将为您提供TT元素的字符串值,它在您的示例中是空字符串。如果要显示Skriveartikler等文本,则需要

<xsl:value-of select="@TXT1" />

如果您根本没有得到<textarea>元素,那么您的变量可能不包含您所期望的内容。您在问题中给出的Column1 XML是从具有默认名称空间声明(xmlns="...")的较大文档中选择的片段吗?如果是这样,则需要将名称空间绑定到样式表中的前缀,并在xpath中使用该前缀。

另一种可能性是在XSLT 1.0中,如果声明像

这样的变量
<xsl:variable name="qwe">
  <Column1>
    <TT TXT1="Skriveartikler" />
    <TT TXT1="Kridt" />
    <TT TXT1="Tavlekridt" />
  </Column1>
</xsl:variable>

则变量将包含结果树片段,而不是节点集,并且您可以对RTF做的唯一事情就是将其复制到输出树中—您不能使用XPath表达式导航到它。如果要这样做,需要使用扩展函数(如exslt:node-set()

)将RTF转换为节点集

变量不包含您告诉我们的内容。

相关内容

  • 没有找到相关文章

最新更新