【问题标题】:how to get attribute value in xslt?如何在 xslt 中获取属性值?
【发布时间】: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 的使用,则不需要。

标签: xml xslt xslt-1.0


【解决方案1】:

请参阅 http://xsltransform.net/ehVYZMp/8 的编辑代码以获得答案。

【讨论】:

  • 虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
  • 2010-10-02
  • 1970-01-01
  • 2017-04-22
相关资源
最近更新 更多