我是XSLT的新手,不知道如何将属性从子标记复制到新标记。我很确定这是一个愚蠢的初学者的错误。
输入文件为:
<?xml version="1.0" encoding="UTF-8"?> <navMap> <navPoint> <navLabel> <text>Chapter 1</text> </navLabel> <content src="Text/chapter01.html"/> </navPoint> </navMap>
到目前为止,我拥有的XSLT是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="navMap/navPoint">
<h1><span><xsl:value-of select="./content/@src" /></span><xsl:value-of select="./navLabel/text" /></h1>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这将生成:
<h1><span>Text/chapter01.html</span>Chapter 1</h1>
但是,我需要:
<h1 href="Text/chapter01.html">Chapter 1</h1>
如何向h1标签添加新的href属性并复制内容标签的src属性的值?
我试过:
<h1 href="<xsl:value-of select="./content/@src" />"><xsl:value-of select="./navLabel/text" /></h1>
但这产生了一个语法错误。
首选方法通常是使用属性值模板。
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="navMap/navPoint">
<h1 href="{content/@src}">
<xsl:value-of select="navLabel/text" />
</h1>
</xsl:for-each>
</body>
</html>
</xsl:template>
花括号表示要计算的表达式,而不是逐字输出。
您还可以使用xsl:属性
来创建属性
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="navMap/navPoint">
<h1>
<xsl:attribute name="href">
<xsl:value-of select="content/@src" />
</xsl:attribute>
<xsl:value-of select="navLabel/text" />
</h1>
</xsl:for-each>
</body>
</html>
</xsl:template>
但正如你所看到的,这篇文章有点冗长。但是,如果您希望它是有条件的(即仅在某些情况下添加),或者如果表达式太复杂,无法放入属性值模板,则可以使用此选项。
您能帮助我使用xslt实现以下预期输出吗。 输入 预期输出
问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标
问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标
问题内容: 好的,所以我想将一个非常基本的数组传递到jquery数据attrubute服务器端,如下所示: 然后像这样回撤: 为什么这似乎会警告’[‘而不是’a’(请参阅JSfiddle链接) JSFiddle链接: http : //jsfiddle.net/ktw4v/3/ 问题答案: 它将变量视为字符串,其第零个元素为。 发生这种情况是因为您的字符串不是有效的JSON,它应使用双引号而不是单
在使用PingFederate进行单点登录期间,我需要将数据从一个系统传递到另一个系统。 目前我的链接如下所示: 目标资源,解码,如下所示: pingfederate处理请求后,它最终会向其他公司发送一封邮件,将整个TargetResource复制到RelayState、params和all中: 我的目标是以某种方式将 paramOne 和 paramTwo 传递到 SAML 属性中,但不要将这些
问题内容: 我有一个主类,期望使用-D选项传递某些属性。我可以通过将其作为VM选项发送来在IDE中访问它。 我使用Maven并在尝试以下操作时将此应用程序打包到jar文件中: 要么 没有获取环境系统属性。 关于发生了什么的任何指示? 问题答案: 在。之前传递参数。如果在jar文件之后传递它们,它们将被解释为命令行参数并传递给in 。喜欢,