我想从一些 XML 文件中获取数据并将它们转换为新的 XML 文档。但是,我不希望 XSLT 中命名空间的定义出现在结果文档中。
换句话说:
source:
<Namespace:Root xmlns:Namespace="http://www.something.com">
样式表:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:Namespace="http://www.something.com">
result:
<resultRoot xmlns:Namespace="http://www.something.com">
<!--I don't want the Namespace definition above-->
我正在使用 msxsl 进行转换。
您可以使用exclude-result-prefixes
的属性xsl:stylesheet
元素以避免将名称空间前缀发送到输出文档中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:prefix1="http://www.something.com"
exclude-result-prefixes="prefix1">
</xsl:stylesheet>
要从输出文档中隐藏多个名称空间,请指定它们并用空格分隔:
exclude-result-prefixes="prefix1 prefix2 prefix3"
来自XSLT规范 http://www.w3.org/TR/xslt#literal-result-element:
当样式表仅出于寻址源树的目的使用名称空间声明时,在 except-result-prefixes 属性中指定前缀将避免结果树中出现多余的名称空间声明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)