将限定名称的前缀部分解析为命名空间 URI。
string ms:namespace-uri(string)
备注
ms:namespace-uri() 函数假定参数为限定名称(例如 q:mine 或 coffee:beans)并尝试在当前节点的上下文中解析前缀。 如果该参数不是限定名称或非冒号表示名称,此函数返回空字符串。 对于非字符串参数,此函数的行为就像应用了 string() 函数。
示例
以下示例使用 XSLT 模板规则,从 books.xml 中选择所有元素并输出元素的数据类型和命名空间 URI(按 books.xsd 中的定义)。
XML 文件 (books.xml)
使用使用针对 XSD 的 XPath 扩展函数支持中的 XML 文件。
XSD 文件 (books.xsd)
使用使用针对 XSD 的 XPath 扩展函数支持中的 XSD 文件。
HTML 文件 (books.html)
该 HTML 文件与 ms:type-namespace-uri([node-set]) 函数主题中列出的文件相同。
XSLT 文件 (books.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()"/>
<xsl:output method="html"
omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<xsl:if test="ms:type-namespace-uri() != ''">
<DIV>
(ms:)
<xsl:value-of select="ms:namespace-uri(name())"/>:
<xsl:value-of select="ms:local-name(name())"/>
</DIV>
<DIV>
(std:)
<xsl:value-of select="namespace-uri()"/>:
<xsl:value-of select="local-name()"/>
</DIV>
<DIV>
(name():)
<xsl:value-of select="name()"/>
</DIV>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
输出
(ms:) urn:books:catalog
(std:) urn:books:catalog
(name():) x:catalog
输出的第一行为 ms:namespace-uri(string) 和 ms:local-name(string) 返回的结果。 第二行为 XPath 标准函数 namespace-uri(nodeset) 和 local-name(nodeset 返回的结果。 第三行为 XPath 标准函数 name(nodeset) 返回的结果。