xml - 使用 XSL 将所有元素名称转换为小写?

标签 xml xslt transform

在 XSL 中,如何在处理文档之前将文档中的所有元素名称转换为小写?我们正在使用 XSLT 2.0,我们已经尝试了以下方法,但它不起作用...

<A>
  <ITEMS>
    <ITEM/>
    <ITEM/>
  </ITEMS>
</A>


<xsl:transform>

  <xsl:template match="*">      
    <xsl:element name="{lower-case(local-name())}">
        <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>     

//do work here...  
<xsl:apply-templates>
  ...

</xsl:transform>

最佳答案

它在 Altova XMLSpy 下工作:

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xsl:output exclude-result-prefixes="xsl xs" indent="yes"/>

  <xsl:template match="*">      
    <xsl:element name="{lower-case(local-name())}">
        <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>    

</xsl:stylesheet>

XML 输入:

<?xml version="1.0" encoding="UTF-8"?>
<A>
  <ITEMS>
    <ITEM/>
    <ITEM/>
  </ITEMS>
</A>

XML 输出:

<?xml version="1.0" encoding="UTF-8"?>
<a>
    <items>
        <item/>
        <item/>
    </items>
</a>

关于xml - 使用 XSL 将所有元素名称转换为小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267973/

相关文章:

java - Jaxb和内部元素的命名空间

java - TransformerFactory.newInstance() 停止了吗?

xml - 用于多个字符串的 XPath/XSLT contains()

javascript - XSL 中的空元素 - 嵌套问题

web-config - microsoft.identityModel上的Web配置转换-未声明“http://schemas.microsoft.com/XML-Document-Transform”属性

javascript - 在 SVG 中使用变换模拟枢轴旋转

html - CSS 屏幕方向 WebApp 旋转

java - 如何在android上的按钮上画一条线?

python - 用生成的图像替换 xml 标签(python 正则表达式)

xml - 将 XSLT 应用于来自 iOS 中的 Web 服务的 XML