System.Xml.Xsl.XslLoadException:未定义前缀'xmlns'

时间:2013-07-24 07:11:18

标签: .net xslt

我们一直在运行.NET 2.0,并且最近决定升级到.NET 4.0,这会产生一些不良影响。

我有一个ASPX页面,它运行XslCompiledTransform.Load()函数来生成HTML,但它现在抛出异常“未定义前缀'xmlns'。”自升级到4.0版。

我的样式表声明为:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:ms="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="#default xmlns msxsl user ms xsl">

有任何想法如何解决此问题?

1 个答案:

答案 0 :(得分:2)

您需要从“exclude-result-prefixes”列表中删除“xmlns”,因为它实际上根本不是命名空间前缀。它是用于声明命名空间的保留字。

<xsl:stylesheet version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
     xmlns:ms="urn:schemas-microsoft-com:xslt" 
     exclude-result-prefixes="#default msxsl user ms xsl">

从外观上看,您可能还需要删除“用户”。