aur*_*rel 5 xml xslt xpath namespaces
我可能在这里做一些愚蠢的事情,我敢打赌,这是一种更简单的方法……我需要访问节点的名称空间。我的xml中的元素看起来像这样:
<somenamespace:element name="SomeName">
Run Code Online (Sandbox Code Playgroud)
然后在我的xslt中,使用以下命令访问此元素:
<xsl:template match="*[local-name()='element']">
<xsl:variable name="nodename">
<xsl:value-of select="local-name(current())"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($nodename,':')">
Run Code Online (Sandbox Code Playgroud)
好吧,这当然是行不通的,因为即使在模板匹配中也没有“ somenamespace”命名空间。
谁能指导我,我在找什么?
在我看来,好像您想测试该节点是否位于非空命名空间中。正确的方法是
namespace-uri() != ''
Run Code Online (Sandbox Code Playgroud)
您不应该查看词法名称是否有前缀或包含冒号,因为如果节点位于名称空间中,则可以使用前缀或不使用前缀来编写它,并且两种形式是等效的。
但我猜测你真正的、潜在的需求是什么。
您正在寻找name功能,例如:
<xsl:value-of select="name()"/>
Run Code Online (Sandbox Code Playgroud)
回报somenamespace:element
| 归档时间: |
|
| 查看次数: |
6664 次 |
| 最近记录: |