当存在两个相同的命名空间但属性不同时,XSL样式表会出错

时间:2011-10-03 17:13:01

标签: xml xslt

正如标题所说,我有这个错误

<xsl:stylesheet version="1.0" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">

我尝试用逗号,添加它们,但我得到的结果与

相同

xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/,http://a9.com/-/spec/opensearch/1.1/"

有没有办法包括两者?

2 个答案:

答案 0 :(得分:2)

您需要指定唯一的前缀,例如:

<xsl:stylesheet version="1.0" 
    xmlns:openSearch10="http://a9.com/-/spec/opensearchrss/1.0/"
    xmlns:openSearch11="http://a9.com/-/spec/opensearch/1.1/">

答案 1 :(得分:1)

不,那是不允许的。命名空间声明(xmlns:[prefix]="[namespace-uri]")的目的是定义从prefix到namespace-uri的映射。

如果有两个值,则映射是不明确的,不能用于确定某个元素<openSearch:element />哪个名称空间uri要附加到该元素。