xslt - xslt 下拉列表中选定的属性

标签 xslt

我有一个来自 C# 的逗号分隔列表,我正在 XSLT 中解析该列表并将其作为下拉列表加载。用户从下拉列表中选择选项并提交页面后,如果页面中未填写其他字段,我会尝试使用该下拉列表中选定的选项重新加载页面。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template name="parseString">
<xsl:param name="list"/>
<xsl:if test="contains($list, ',')">
  <xsl:element name="option">
    <xsl:attribute name="value">
      <xsl:value-of select="substring-before($list, ',')"/>
    </xsl:attribute>
    <xsl:value-of select="substring-before($list, ',')"/>
    <xsl:if test="substring-before($list, ',')=$carrier">
      : sel value
      <xsl:attribute name="SELECTED"></xsl:attribute>
    </xsl:if>        
  </xsl:element>
  <xsl:call-template name="parseString">
    <xsl:with-param name="list" select="substring-after($list, ',')"/>
  </xsl:call-template>
</xsl:if>

但是重新加载后,下拉列表中选定的值不会保留。 但我可以看到文本 - 'sel value' 满足条件并显示。例如,在图像中,您可以看到运营商 - Metro PCS 的文本。

任何帮助将不胜感激。

谢谢。 You can find the image here

编辑:我已经尝试了多种方法来选择属性,例如

<xsl:attribute name="SELECTED"></xsl:attribute>
<xsl:attribute name="SELECTED">True</xsl:attribute>
<xsl:attribute name="SELECTED">selected</xsl:attribute>

它们似乎都不起作用。

最佳答案

尝试交换这两行:

  : sel value
  <xsl:attribute name="SELECTED"></xsl:attribute>

成为

  <xsl:attribute name="SELECTED"></xsl:attribute>
  : sel value

我认为您正在尝试向“:sel value”文本节点添加一个属性,这显然不起作用。

编辑

仔细看看你的模板,我认为这是一个像上面建议的问题(向文本节点添加属性)。 试试这个:

<xsl:element name="option">
    <xsl:attribute name="value">
      <xsl:value-of select="substring-before($list, ',')"/>
    </xsl:attribute>

    <xsl:if test="substring-before($list, ',')=$carrier">
      <xsl:attribute name="SELECTED"></xsl:attribute>
      : sel value
    </xsl:if>        
    <xsl:value-of select="substring-before($list, ',')"/>
  </xsl:element>

当您的 if 为 true 时,它​​会尝试向 value-of 添加的文本节点添加属性。所有属性添加都需要在添加任何子节点之前添加,无论是文本还是其他。

关于xslt - xslt 下拉列表中选定的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661630/

相关文章:

java - 无法使用xslt从xml获取所需数据到csv

xslt - 使用 XSLT 2.0 验证 IBAN?

java - 使用 Xalan-J 的 xsl cdata-section-elements 输出属性

xml - 带有命名空间的 XSLT 导致问题

xml - XSLT如何在不更改属性的情况下将其添加到现有模板中

php - XSLT 2.0 PHP 支持。什么时候?

php - 更快的 PHP XSL 处理器

xslt - XSLT 中的上个月最后一天

java - XSLT:使用xpath表达式提取兄弟节点的最后x位

java - 如何从 java 调用命名的 XSLT 模板