В этих случаях вы также можете использовать редко используемую ось namespace
.Значением узла пространства имен является URI пространства имен, а именем узла пространства имен является префикс пространства имен.Для ясности URI пространства имен определяется как переменная, на которую затем ссылаются.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- variable definitions -->
<xsl:variable name="input" select="."/>
<xsl:variable name="nsUri" select="'http://schemas.xmlsoap.org/soap/envelope/'"/>
<!-- getting the namespace prefix -->
<xsl:value-of select="name($input/*/namespace::*[. = $nsUri])"/>
</xsl:template>
</xsl:stylesheet>
(Хотя это редко, URI определенного пространства имен может иметь несколько префиксов, префикс может быть переопределен позже в документеэлементы могут использовать разные префиксы, связанные с одним и тем же пространством имен. Этот пример кода ищет корневой элемент для определения пространства имен и возвращает первый префикс данного URI.)