如何使用XSLT将base64编码的文本加载到XML文档中?

如何使用XSLT将base64编码的文本加载到XML文档中?,xslt,xslt-1.0,xslt-2.0,Xslt,Xslt 1.0,Xslt 2.0,如何使用XSLT将base64编码的文本加载到XML文档中 例如,如果我有以下两个文档 输入文件1: YTM0NZomIzI2OTsmIzM0NTueYQ== <xml> <Column1></Column1> </xml> <xml> <Column1>YTM0NZomIzI2OTsmIzM0NTueYQ==</Column1> </xml> 输入文件2: YTM0NZomIzI2OTsmIz

如何使用XSLT将base64编码的文本加载到XML文档中

例如,如果我有以下两个文档

输入文件1:

YTM0NZomIzI2OTsmIzM0NTueYQ==
<xml>
<Column1></Column1>
</xml>
<xml>
<Column1>YTM0NZomIzI2OTsmIzM0NTueYQ==</Column1>
</xml>
输入文件2:

YTM0NZomIzI2OTsmIzM0NTueYQ==
<xml>
<Column1></Column1>
</xml>
<xml>
<Column1>YTM0NZomIzI2OTsmIzM0NTueYQ==</Column1>
</xml>

所需输出:

YTM0NZomIzI2OTsmIzM0NTueYQ==
<xml>
<Column1></Column1>
</xml>
<xml>
<Column1>YTM0NZomIzI2OTsmIzM0NTueYQ==</Column1>
</xml>

YTM0Nzomizi2OtsmizM0Ntueq==

如果使用的是XSLT 2.0,则可以使用该函数从文本文件加载base64内容

在下面的示例中,使用文档URI的默认值设置
xsl:param
,但是在调用转换时可以设置不同的值

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

    <xsl:param name="base64-document" select="'base64-content.txt'"/>

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

    <xsl:template match="Column1">
          <xsl:copy>
            <xsl:value-of select="unparsed-text($base64-document)"/>
          </xsl:copy>
    </xsl:template>

</xsl:stylesheet>

这样做的方法是你先尝试解决问题,然后在遇到困难时问一个具体的问题,展示你所做的。有关编写问题的提示,请阅读和。出现此错误:javax.xml.transform.TransformerException:找不到函数:未分析的文本请提供帮助?听起来您使用的是XSLT 1.0引擎。unparsed-text()是一个仅限2.0版本的函数。要么使用支持2.0的引擎(如Saxon),要么尝试我的1.0解决方案