-2

我有一个<div>带有属性的嵌套级别元素的 xml 文档。我想按属性名称重命名 div 。

4

1 回答 1

0

这种转变

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="div">
  <xsl:element name="{@class}">
    <xsl:apply-templates select="node()|@*"/>
  </xsl:element>
 </xsl:template>
</xsl:stylesheet>

当应用于以下 XML 文档时

<html>
  <div class="animal">
     Animals:
     <div class="mammal">
       Mammals:
        <div class="dog">
          Dogs
        </div>
        <div class="cat">Cats</div>
    </div>
  </div>
</html>

产生想要的正确结果

<html>
   <animal class="animal">
      Animals:

      <mammal class="mammal">
         Mammals:

         <dog class="dog">
                      Dogs

         </dog>
         <cat class="cat">Cats</cat>
      </mammal>
   </animal>
</html>

说明

正确使用标识规则设计模式。

于 2012-06-06T12:10:17.147 回答