XSLT:获取元素的前缀?

Pie*_*rre 4 xml xslt function prefix

在XSLT 1.0中,您可以使用以下函数获取XML元素的本地名称或namespaceUri:

string local-name (node)
Run Code Online (Sandbox Code Playgroud)

string namespace-uri(node)
Run Code Online (Sandbox Code Playgroud)

但是有一个标准函数来获取具有限定名称的元素的前缀吗?

Tom*_*lak 9

不是我所知道的.如果您确定节点名称有前缀,则可以使用以下命令:

substring-before(name(), ':')
Run Code Online (Sandbox Code Playgroud)

或者,如果您不确定:

substring-before(
  name(), 
  concat(':', local-name())
)
Run Code Online (Sandbox Code Playgroud)

后一个表达式基于以下事实:substring-before()当找不到搜索到的字符串时返回空字符串.这样它就可以正常使用前缀和未加前缀的名称.