1

希望你能帮助我指出这个问题的正确方向......

我正在尝试做的事情:我有一个 XML 文件,我正在使用 XSLT 将其转换为 HTML。其中一部分包括添加“隐藏”按钮。我想使用隐藏按钮从XML中删除节点,我的想法是给按钮与相关XML元素中的myId属性相同的id,这样可以很容易地将按钮的onClick与XML匹配要隐藏的元素。

下面是一些 XML:

<sectionStatement myId="1">Awesome statement</sectionStatement>
<sectionStatement myId="2">I am a statement</sectionStatement>
<sectionStatement myId="3">I am another statement</sectionStatement>

这是我卡住的XSL:

<xsl:for-each select="sectionStatement">
  <p><xsl:value-of select="."/><a class='showHideBtn' href='#'>Hide</a></p>
</xsl:for-each>

...所以我想以 3 段 html 结尾,每段都有一个“隐藏”按钮,并且我希望该按钮具有相关的 id(1,2 或 3)。这相当于添加id="<xsl:value-of select='@myId'/>"到标签中......但我已经尝试过了,它不起作用!

谢谢你的建议:-) 马克

4

2 回答 2

1

使用属性值模板<a id="{@myId}" class="showHideBtn" href="#">Hide</a>

于 2012-10-26T16:16:09.663 回答
0

您可以使用xsl:attribute添加动态的条件属性并将模板应用于元素。

<p>
   <xsl:attribute name="id">
    optionalText<xsl:value-of select="@myId"/>
   </xsl:attribute>
</p>

如果您已经知道该值,则转换语法会更简单。

<xsl:for-each select="sectionStatement">
  <p><xsl:value-of select="."/>
    <a class='showHideBtn' href='#' id='{@myId}'>
    Hide
    </a>
  </p>
</xsl:for-each>
于 2012-10-26T16:15:03.563 回答