我正在编写一个 XSL 模板,该模板从许多辅助来源中提取数据。示例辅助文档如下所示:
<toplevel xmlns:foo1="http://foo1">
<path xmlns="http://foo1">
<mytag>bar</mytag>
</path>
</toplevel>
在 XSL 中,我这样做:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo1="http://foo1"
exclude-result-prefixes="foo1">
<xsl:variable name="secondary1" select="document('secondary1.xml')/toplevel"/>
<foo>
<xsl:value-of select="$secondary1//foo1:path/foo1:mytag"/>
</foo>
</xsl:stylesheet>
由于有很多次要资源,每个资源都使用不同的命名空间,给每个标签添加前缀很乏味,而且这么多重复也不是正确的做法。有没有办法使用 document() 使得导入的节点集的命名空间被剥离(或以另一种方式实现相同的效果)?