首页 > 解决方案 > 复杂表达式中的大写 [XSLT 1.0]

问题描述

找到了如何为一个简单的问题制作“大写”。但是,当它应该是复杂表达式的一部分时,如何正确执行此操作?

这是底部的 2 个未解决的示例。

资源:

<document>
  <element-1 attr-1="some value">
    <element-2 attr-2="12345"/>
 </element-1>      
</document>

XSLT-1 (带有一个简单大写字母的原始表达式)

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="document">
    <document A="{element-1/@attr-1}"
              B="{normalize-space(concat(element-1/@attr-1, ' ', 
              element-1/element-2/@attr-2))}">

          <xsl:attribute name="UPPERNAME-1"> <!--simple Xpath UP -->
          <xsl:value-of select="translate(element-1/@attr-1,'abcdefghijklmnopqrstuvwxyz',
                                'ABCDEFGHIJKLMNOPQRSTUVWXYZ ')"/>
         </xsl:attribute>

    </document>
  </xsl:template>
</xsl:stylesheet>

输出

<?xml version="1.0" encoding="utf-16"?>
<document A="some value" B="some value 12345" UPPERNAME-1="SOME VALUE" />

我希望将“大写”效果结合到[XSLT 1.0]的 DESIRED 属性表达式

UPPERNAME-2 ="{element-1/@attr-1}{element-1/element-2/@attr-2}"
UPPERNAME-3 ="{normalize-space(concat(element-1/@attr-1, ' ', 
              element-1/element-2/@attr-2))}">

标签: xmlxslt

解决方案


推荐阅读