试试这个 XSLT...
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="symbols" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:variable name="symbols-count" select="string-length($symbols)" />
<xsl:template match="row">
<row>
<xsl:call-template name="convert" />
</row>
</xsl:template>
<xsl:template name="convert">
<xsl:param name="value" select="number(.)" />
<xsl:choose>
<xsl:when test="$value >= $symbols-count">
<xsl:variable name="div" select="floor($value div $symbols-count)" />
<xsl:variable name="remainder" select="$value - $div * $symbols-count" />
<xsl:call-template name="convert">
<xsl:with-param name="value" select="$div" />
</xsl:call-template>
<xsl:value-of select="substring($symbols, $remainder + 1, 1)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring($symbols, $value + 1, 1)" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
应用于以下 XML 时
<root>
<row>12</row>
<column>23</column>
<row>26</row>
<column>23</column>
</root>
以下是输出
<root>
<row>M</row>
<column>23</column>
<row>BA</row>
<column>23</column>
</root>
您应该能够调整符号变量以允许任何花哨的命名转换。例如,要转换为十六进制,请将其更改为以下
<xsl:variable name="symbols" select="'0123456789ABCDEF'" />
并转为二进制
<xsl:variable name="symbols" select="'01'" />