【发布时间】:2017-04-06 10:02:55
【问题描述】:
请告诉我如何在 xslt 中获取属性值?我创建了变量,其中有full name(f) 和short name (s)。
使用全名我想得到短名
这是我的代码 http://xsltransform.net/ehVYZMp/1
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl">
<xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:variable name="teams">
<team f="Sunrisers Hyderabad" s="SRH"></team>
<team f="Delhi Daredevils" s="DD"></team>
<team f="Gujarat Lions" s="GL"></team>
<team f="Kings XI Punjab" s="KXIP"></team>
<team f="Kolkata Knight Riders" s="KKR"></team>
<team f="Mumbai Indians" s="MI"></team>
<team f="Rising Pune Supergiant" s="RPS"></team>
<team f="Royal Challengers Bangalore" s="RCB"></team>
</xsl:variable>
<xsl:variable name="up" select="'Kings XI Punjab'"/>
<xsl:template match="/">
<hmtl>
<head>
<title>New Version!</title>
</head>
<xsl:value-of select="exsl:node-set($teams)/team[@f = $up]/@s"/>
</hmtl>
</xsl:template>
</xsl:transform>
预期输出: KXIP
【问题讨论】:
-
发布的代码与您链接的代码不同,并且您没有在问题中提供任何 XML 输入。考虑添加最小但完整的输入样本、XSLT、您想要的输出和您获得的结果,以及您想要使用的 XSLT 处理器的精确描述,因为您已将问题标记为 XSLT 1.0 和 2.0,显示了
version="1.0"样式表,但在您的链接在线编辑器中使用了 XSLT 2.0 处理器。所以我们需要更多细节来判断您是否需要 EXSLT 以及问题所在。 -
我想在 xslt1 中这样做
-
我想在 XSLT 中做到这一点
1 -
你能帮帮我吗
-
好吧,然后使用 XSLT 1.0 处理器,然后上面的代码就可以工作xsltransform.net/ehVYZMp/3。如果您使用 XSLT 2.0 处理器然后删除
exsl:node-set的使用,则不需要。