Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 获取当前节点';XSL中的本地名称_Xslt - Fatal编程技术网

Xslt 获取当前节点';XSL中的本地名称

Xslt 获取当前节点';XSL中的本地名称,xslt,Xslt,下面是我的XML的结构 <FileRoot> <UserSet1> <User> <FirstName></FirstName> <LastName></LastName> </User> <User> <FirstName></First

下面是我的XML的结构

<FileRoot>
    <UserSet1>
         <User>
            <FirstName></FirstName>
            <LastName></LastName>
         </User>
         <User>
            <FirstName></FirstName>
            <LastName></LastName>
         </User>
         ...
    </UserSet1>
    <InactiveUsers>
         <User>
            <FirstName></FirstName>
            <LastName></LastName>
         </User>
         <User>
            <FirstName></FirstName>
            <LastName></LastName>
         </User>
         ...
    </InactiveUsers>
</FileRoot>

...
...
在我的XSL模板中

<xsl:template match="/*/*">
   <File>
      <xsl attribute name="Name">
          <xsl:value-of select="local-name(/*/*)"/>
      </xsl:attribute>
   </File>
</xsl>

转换后,对于UserSet1和InactiveUsers,给了我“UserSet1”。对于UserSet1,预期结果应该是“UserSet1”,对于InactiveUsers,预期结果应该是“InactiveUsers”。如何正确检索该值


谢谢

/*/*
是一个绝对路径,因此
本地名称(/*/*)
将始终返回整个文档中与该绝对路径匹配的第一个节点的本地名称。看起来您需要当前节点的本地名称。在这种情况下,请改用
local-name()
。未指定参数时,将使用当前上下文节点

此外,还可以使用属性值模板而不是
xsl:attribute
,如下所示:

<xsl:template match="/*/*">
   <File Name="{local-name()}"/>
</xsl>

正是我所需要的。谢谢