У вас есть половина решения в вашей таблице стилей.
Вы вставили шаблон для сопоставления (и исправления) элементов с неправильным пространством имен Media RSS , но у вас нет ничего, чтобы соответствовать другим элементам / атрибутам в RSSкормить.
Встроенные правила шаблона соответствуют остальным узлам документа, что будет копировать только текстовые узлы в вывод.Это не сохраняет исходный XML-канал RSS и приводит к выводу, который не является допустимой XML-структурой RSS.
Добавление шаблона преобразование идентичности обеспечит, что другие узлы иатрибуты копируются в выходные данные и сохраняют содержимое / структуру документа.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--identity transform that will copy matched node/attribute to the output and apply templates for it's children and attached attributes-->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()" />
</xsl:copy>
</xsl:template>
<!--Specialized template to match on elements with the incorrect namespace and generate a new element-->
<xsl:template match="//*[namespace-uri()='http://search.yahoo.com/mrss']">
<xsl:element name="{local-name()}" namespace="http://search.yahoo.com/mrss/" >
<xsl:apply-templates select="@*|*|text()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>