使用XSL传递一个XML属性作为一个id为HTML(Using XSL to pass an XML

2019-10-17 08:03发布

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

我所试图做的事:我有我使用XSLT变成HTML的XML文件。 其中一部分包括添加“隐藏”按钮。 我想使用隐藏按钮从XML删除节点,我的想法是让按钮相同的ID在相关的XML元素的身份识别码属性,这使得它很容易与XML匹配按钮的onclick元素隐藏。

这里有一个位的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'/>"输入到标签...但我已经试过这一点,这是行不通的!

谢谢你的建议:-)马克

Answer 1:

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



Answer 2:

你可以使用XSL:属性添加动态,有条件的属性和适用模板元素。

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


文章来源: Using XSL to pass an XML attribute as an id into HTML