Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 XSL,它匹配输入 XML 中的所有属性,并将它们原样复制到输出 XML 中。我使用该name()函数来获取匹配属性的名称。当 XSL 遇到其名称空间未在 XSL 本身中定义的属性时,我会收到“未知模式前缀”错误。但是当我在 XSL 中定义这些命名空间时,它工作得很好。
name()
为什么这个命名空间的定义是必要的?
如果您希望我们告诉您您的代码有什么问题,它有助于显示您的代码。否则我们只需要猜测。我的猜测是你正在做类似的事情:
<xsl:attribute name="{name()}"/>
name()如果返回类似“ xyz :banana ”的东西,其中xyz不是样式表中声明的前缀,这将失败。更好的方法是:
<xsl:attribute name="{local-name()}" namespace="{namespace-uri()}"/>
但是,如果我完全猜错了问题,那么 - 责备自己。