Asp.net XSLT。加载包含转义字符的xml文档

Asp.net XSLT。加载包含转义字符的xml文档,asp.net,xml,xslt,Asp.net,Xml,Xslt,我使用XSLT转换XML文档,然后将其加载到ASP.NET网站。但是,如果XML包含“,则XML应该包含小于号()的转义序列,而不是文本

我使用XSLT转换XML文档,然后将其加载到ASP.NET网站。但是,如果XML包含“
,则XML应该包含小于号()的转义序列,而不是文本<字符。XML格式不正确,任何XML解析器都必须拒绝它

在XSLT中,可以生成如下序列:

<xsl:text>&amp;lt;<xsl:text>
&;书信电报;

据我所知,输入包含HTML和文字<字符。在这种情况下,disable output escaping=“yes”将保留HTML标记,但会生成无效的XML,将其设置为no意味着HTML标记将被转义

您需要做的是保留设置disable output escaping=“no”(这是默认设置,您实际上不必添加它),并添加一个将复制HTML标记的XSLT规则。例如:

<xsl:template match="*">
    <xsl:copy>
        <xsl:copy-of select="@*" />
        <xsl:apply-templates />
    </xsl:copy>
</xsl:template>

我想出了一个解决方案,Josh的最后一个答案触发了我。谢谢你,乔希。我尝试使用匹配模板,但是我遇到了一个问题,因为html标记放在cdata中,所以我很难进行匹配。也许有办法,但我放弃了


我所做的是做一个test=“contain($text,$replace)”,其中$replace是‘但是我认为这是硬编码‘没有包含的XML’您的问题很难理解。请提供:1)示例输入,2)示例所需输出,以及3)现有模板不符合您的要求。请发布输入示例,以显示这些字符的来源。songtitle 110308]]>因为我无法控制XML文档。请注意“”,我希望输出这些字符,但同时能够加粗输入标记中包含的字符。但是,如果标签包含在cdata中,我还有另一个问题。我怎样才能仍然进行html标记的模板匹配?鉴于我无法控制xml文档。
<b>&lt; left arrows</b>
<xsl:text>&amp;lt;<xsl:text>
<xsl:template match="*">
    <xsl:copy>
        <xsl:copy-of select="@*" />
        <xsl:apply-templates />
    </xsl:copy>
</xsl:template>