首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在XSL中获取当前节点的本地名称

在XSL中获取当前节点的本地名称
EN

Stack Overflow用户
提问于 2010-05-14 05:43:55
回答 1查看 8.7K关注 0票数 0

下面是我的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”。如何正确检索该值?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-14 05:59:56

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

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

<xsl:template match="/*/*">
   <File Name="{local-name()}"/>
</xsl>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2830537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档