【问题标题】:XSLT namespace and XML doc without one - how does it workXSLT 命名空间和 XML 文档没有之一 - 它是如何工作的
【发布时间】:2014-11-27 19:10:05
【问题描述】:

我有一个定义默认命名空间的 XML 文档,即

<rootnode xmlns="..."><book>...</book>

本文档中的所有标签均不带任何前缀。

现在我正在查看一个 XSLT 文档,该文档据称正在转换上述文档,它确实定义了一个命名空间并包含使用此命名空间前缀“foo:book”的节点的模式。

<xsl:stylesheet xmlns:foo="..."> 

它是如何工作的......也就是说,这个 XSLT 能否真正将使用命名空间前缀的标签与 XML 文档中没有该前缀的标签相匹配?

我觉得唯一有趣的是 XML 和 XSLT 中命名空间的 URL 完全相同,但不确定是否相关。

谁能解释一下?

【问题讨论】:

    标签: xml xslt namespaces


    【解决方案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"
    

    相对于指令的祖先或自我轴上的某个位置。

    【讨论】:

      猜你喜欢
      • 2015-12-14
      • 1970-01-01
      • 2015-09-10
      • 2016-03-13
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      相关资源
      最近更新 更多