<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:infoRequest="ControlSkin3"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xmlns">
<xsl:output omit-xml-declaration="yes" method="xml" encoding="utf-8" />
我在xhtml转换过程中遇到了一个问题,有些元素是这样的:xmlns:ms =“urn:schemas-microsoft-com:xslt”在我的很多xhtml标签中都有一个问题。
例如:
<script type="text/javascript" src="/style/js/etablissement/videos.js"
xmlns:infoRequest="ControlSkin3"
xmlns:ms="urn:schemas-microsoft-com:xslt" ></script>
我正在研究IIS6。我没有解释。
你有同样的问题吗? 我的代码有什么问题?
谢谢。
答案 0 :(得分:4)
排除-结果前缀= “的xmlns” &GT;
我的代码有什么问题?
这没有多大意义,因为XSLT样式表中没有任何名称空间前缀,名为"xmlns"
。
另一方面,现有的前缀是:"ms"
,"infoRequest"
和"xsl"
。
如果将这些前缀指定为空格分隔列表作为exclude-result-prefixes
属性的值,则它们将不会出现在任何文字结果元素的序列化(输出)中。
例如:
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:infoRequest="ControlSkin3"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="ms infoRequest xsl">
<xsl:output omit-xml-declaration="yes" method="xml" encoding="utf-8" />
<xsl:template match="/">
<html>
<head>
<script type="text/javascript" src="/style/js/etablissement/videos.js">
/* Script code here */
</script>
</head>
</html>
</xsl:template>
</xsl:stylesheet>
执行此转换时(在任何源XML文档上 - 未使用),结果不包含任何不需要的命名空间:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/style/js/etablissement/videos.js">
/* Script code here */
</script>
</head>
</html>
答案 1 :(得分:3)
您可以通过exclude-result-prefixes
属性禁止这些命名空间来排除这些命名空间。您需要列出由空格分隔的名称空间前缀:
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:infoRequest="ControlSkin3"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="infoRequest ms">