Как избавиться от xmlns: - Атрибуты в XSL-преобразовании - PullRequest
0 голосов
/ 18 августа 2011

У меня есть преобразование xsl для создания пользовательских элементов управления ASP.NET (ascx).

Мой XSL определяется следующим образом:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:asp="System.Web.UI.WebControls"
    exclude-result-prefixes="asp msxsl"
>
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" />

Итак, из этих исключающих префиксов результата я бы предположил, что все с префиксом asp не должно добавлять информацию о пространстве имен, а вот этот шаблон здесь:

<xsl:template match="Label">
    <asp:Label runat="server" AssociatedControlID="{../@id}">
        <xsl:copy-of select="./text()"/>
    </asp:Label>
</xsl:template>

кормили этим xml:

<Label>Label Text</Label>

приводит к выводу:

<asp:Label runat="server" AssociatedControlID="SomeName" xmlns:asp="System.Web.UI.WebControls">Label Text</asp:Label>

Итак, что мне нужно сделать, чтобы xmlns: asp = ".." не отображался в каждом теге моего результата?

1 Ответ

1 голос
/ 18 августа 2011

Это невозможно, по крайней мере, в MSXML, потому что выходной XML не будет правильно сформирован.Вы можете выводить его только как текст, например, используя CDATA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...