Мне нужно найти решение для исправления с помощью XSLT 1! Большинство отправленных XML-файлов хорошо отформатированы, и кто-то делает беспорядок, добавляя символы (& <>..). Любой способ сделать это на моей стороне? Я попытался XSLT 2 и заменить функция не работает, как я использую процессор XSLT от MicrosoftXSLT 1 - Как заменить '&' на '&' в XML-файле?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:saxon="http://saxon.sf.net/"
exclude-result-prefixes="xs saxon"
version="2.0">
<xsl:param name="path" select="'file:///E:/foo.xml'"></xsl:param>
<xsl:template match="/">
<xsl:copy-of select="unparsed-text($path)"></xsl:copy-of>
<xsl:copy-of select="saxon:parse(replace(unparsed-text($path), '&', '&amp;'))"/>
</xsl:template>
</xsl:stylesheet>
Любое другое предложение, как решить эту проблему. например, у меня есть входной XML-файл, как:
<?xml version="1.0" encoding="UTF-8"?>
<name>Stack & Exchange</name>
И обязательно на «&» характер.
Прошу совета! Спасибо
Что не работает по этому поводу? –
Функция 'replace()' может быть заменена рекурсивным именованным шаблоном. Но если ваш вход не XML, вы не сможете преобразовать его с процессором XSLT 1.0 вообще. В XSLT 1.0 нет 'unparsed-text()'. –
Входной файл xml ** недействителен ** кто бы ни передал его вам, вы не можете требовать доставки xml - получите исправление. –