XSL:避免将命名空间定义导出到生成的 XML 文档
我想从一些 XML 文件中获取数据并将它们转换为新的 XML 文档。 但是,我不希望 XSLT 中命名空间的定义出现在结果文档中。
换句话说:
source:
<Namespace:Root xmlns:Namespace="http://www.something.com">
stylesheet:
<?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 进行转换。
I'd like to take data from some XML files and transform them into a new XML document. However, I do not want the definition of a namespace in the XSLT to occur in the result document.
In other words:
source:
<Namespace:Root xmlns:Namespace="http://www.something.com">
stylesheet:
<?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-->
I am using msxsl for the transformation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
xsl:stylesheet
元素的exclude-result-prefixes
属性来避免将命名空间前缀发送到输出文档中:要从输出文档中抑制多个命名空间,请指定它们用空格分隔:
来自 XSLT 规范:
You can use the
exclude-result-prefixes
attribute of thexsl:stylesheet
element to avoid emitting namespace prefixes into the output document:To suppress multiple namespaces from the output document specify them separated by whitespace:
From the XSLT specification:
迪沃的答案已经被选定,而且是恰当的。
但如果您有兴趣深入挖掘,请查看“命名空间过多”我的巨著中有关广受欢迎的主题“XSLT 中的命名空间”的部分。 (是的,这就是半开玩笑的意思。:-))
divo's answer was already chosen, and appropriately so.
But if you're interested in digging deeper, check out the "Too many namespaces" section in my magnum opus on the wildly popular topic of "Namespaces in XSLT". (Yes, that's meant to be tongue-in-cheek. :-) )
使用extension-element-prefixes =“命名空间”,
例如:
use extension-element-prefixes="Namespace"
like: