0
Есть ли способ преобразования строки в двоичный base64? Я видел много ссылок, но в конце концов это не сработало. Например, у меня есть этот входной файл:Преобразование строки в двоичный base64
<RootElement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Data>
<Binary>
<RawData>This element should convert string to binary base64.</RawData>
</Binary>
</Data>
</RootElement>
Мне нужно создать:
<RootElement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Data>
<Binary>
<RawData>VGhpcyBlbGVtZW50IHNob3VsZCBjb252ZXJ0IHN0cmluZyB0byBiaW5hcnkgYmFzZTY0Lg==</RawData>
</Binary>
</Data>
Я создал XSLT и использовать пространство имен, что я видел онлайн:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dp="http://www.datapower.com/extensions">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="RawData">
<xsl:element name="RawData">
<xsl:value-of select="dp:encode(., 'base-64')"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
спасибо.
Какой XSLT-процессор? Простое использование пространства имен не делает эти функции доступными. Вы также должны установить библиотеки, которые реализуют пространство имен. Вы не предоставили достаточной информации, чтобы кто-либо мог ответить. –
Это поможет, если вы скажете нам XSLT-процессор и версию XSLT, которые вы используете. Расширение Microsoft MSXSL предоставляет элемент '', который вы можете использовать для определения пользовательских функций в JScript/C#/etc. делать преобразования в ваших данных. –
Madeyedexter
Если вы используете процессор Saxon XSLT, вы можете использовать определенную функцию, см. Http://www.saxonica.com/html/documentation/functions/saxon/string-to-base64Binary.html. – potame