gpt4 book ai didi

xslt - 将 XSLT 的部分限制为单个节点

转载 作者:行者123 更新时间:2023-12-04 20:18:02 24 4
gpt4 key购买 nike

有没有办法将一段XSLT限制在单个节点上,这样就不需要每次都需要节点的整个路径?

例如...

Name: <xsl:value-of select="/root/item[@attrib=1]/name"/>
Age: <xsl:value-of select="/root/item[@attrib=1]/age"/>

这可以通过 for-each 命令来完成,但我相信如果可能的话应该避免这些......
<xsl:for-each select="/root/item[@attrib=1]"/>
Name: <xsl:value-of select="name"/>
Age: <xsl:value-of select="age"/>
</xsl:for-each>

我想我是在问是否有与 VB.NET With 命令等效的 XSLT?

我宁愿避免使用 xsl:template 以提高可读性,因为所讨论的 XSLT 文件很大,但如果这是唯一的方法,我很乐意接受。如果是这样,基于特定节点调用特定模板的语法是什么?

更新

跟进@javram 的回答,可以根据特定属性/节点匹配单独的模板。
<xsl:apply-templates select="/root/item[@attrib=1]"/>
<xsl:apply-templates select="/root/item[@attrib=2]"/>

<xsl:template match="/root/item[@attrib=1]">
Name: <xsl:value-of select="name"/>
Age: <xsl:value-of select="age"/>
</xsl:template>

<xsl:template match="/root/item[@attrib=2]">
Foo: <xsl:value-of select="foo"/>
</xsl:template>

最佳答案

您可以使用变量:

<xsl:variable name="foo" select="/root/item[@attrib=1]" />

<xsl:value-of select="$foo/name" />
<xsl:value-of select="$foo/age" />

关于xslt - 将 XSLT 的部分限制为单个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com