我有一个定义默认名称空间的XML文档,即
<rootnode xmlns="..."><book>...</book>
本文档中没有任何标记带有任何前缀。
现在我正在查看一个据称正在转换上述文档的XSLT文档,它确实定义了一个命名空间,并包含使用此命名空间前缀的节点模式&#34; foo:book&#34;。
<xsl:stylesheet xmlns:foo="...">
它是如何工作的......这个XSLT能否真正匹配使用名称空间前缀的标签到XML文档中没有该前缀的标签?
我唯一觉得有趣的是XML和XSLT中的命名空间的URL完全相同,但不确定它是否相关。
任何人都能解释一下吗?
答案 0 :(得分:1)
它是如何工作的......这个XSLT可以真正匹配使用的标签 XML文档中没有该前缀的标记的名称空间前缀?
是。前缀本身毫无意义;重要的是它所绑定的命名空间URI(在样式表中,它被使用的地方)。
我唯一感觉有趣的是两个XML中的命名空间的URL 和XSLT完全相同,但不确定这是否相关。
这正是它的工作原理。例如,指令:
<xsl:copy-of select="foo:chapter"/>
选择
<chapter xmlns="http://www.example.com">
如果样式表声明:
xmlns:foo="http://www.example.com"
相对于指令在祖先或自我轴上的某处。