0

我想使用 XSLT 将 XML 文件传输到其他 XML。我想做转换,因为 XML 文件不是纯树结构文档。

这是我之前的文件:

<uglyStartTag></uglyStartTag>
    <name>content</name>
<uglyEndTag></uglyEndTag>

或者

<uglyStartTag/>
    <name>content</name>
<uglyEndTag/>

这是我的文件之后:

<beautyTag>
    <name>content</name>
</beautyTag>

我该怎么做?我不熟悉 XSLT,所以我会感谢任何建议。

4

1 回答 1

1

这种转变

<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()[preceding-sibling::uglyStartTag
            and
              following-sibling::uglyEndTag
              ][1]">
      <beautyTag>
        <xsl:copy-of select=
         "../node()[preceding-sibling::uglyStartTag
                  and
                    following-sibling::uglyEndTag
                   ]
         "/>
      </beautyTag>
     </xsl:template>
</xsl:stylesheet>

当应用于此 XML 文档时(由 OP 在评论中提供):

<t>
    <uglyStartTag />
    <name>dgsdgsdgsdg</name>
    <uglyEndTag />
</t>

产生想要的正确结果:

<beautyTag>
   <name>dgsdgsdgsdg</name>
</beautyTag>
于 2012-08-05T15:24:33.077 回答