XSLT - кодировать элементы XML как строку в кодировке base64 - PullRequest
0 голосов
/ 22 октября 2019

Я использую XSLT для преобразования большого XML в CSV, и требуется, чтобы последний столбец CSV содержал фактические данные XML в кодированной строке base64. Я преуспел с преобразованием в CSV, но застрял на части кодирования base64. Я столкнулся с этим переполнением стека ответом для кодирования в виде строки base64. Я не могу понять, как выбрать весь узел и передать его в качестве аргумента в вызове шаблона. Ниже приведен пример формата XML, XSL и CSV.

XML

<Products>
  <Product Name="ABC" Description="Sample description" Price="10.0">
     Additional child nodes here...
  </Product>
  <Product Name="XYZ" Description="Sample description" Price="15.0">
         Additional child nodes here...
  </Product>
  <Product Name="DEF" Description="Sample description" Price="16.0">
         Additional child nodes here...
  </Product>
 </Products>

CSV

Name,Description,Price,....,EncodedXML

ABC,SampleDescription,10.0,....,Base64string
XYZ,SampleDescription,15.0,....,Base64string
DEF,SampleDescription,16.0,....,Base64string

XSL:

<xsl:template match="/">
<xsl:for-each select="//Product">
<xsl:call-template name="b64:encode">
<xsl:with-param name="asciiString" select="."/>
</xsl:call-template>
<xsl:for-each>
</xsl:template>
...