gpt4 book ai didi

xml - 可以更好地控制 xsl/xpath 中的 for-each 吗?

转载 作者:行者123 更新时间:2023-12-03 17:01:36 24 4
gpt4 key购买 nike

嘿 friend
我还有另一个 xsl/xpath 问题。当然是初学者的问题,但我认为仍然太“势在必行”。

<!-- XML -->
<Module>
<WideTeaserElement>
<Headline>Bla bla 1</Headline>
</WideTeaserElement>
<WideTeaserElement>
<Headline>Bla bla 2</Headline>
</WideTeaserElement>
</Module>

<!-- XSL -->
<!-- You are already in the Node Module -->
<xsl:template match="WideTeaserElement">
<ul class="TabbedPanelsTabGroup">
<xsl:for-each select=".">
<li class="TabbedPanelsTab"><a href="#"><xsl:value-of select="pub:Headline"/></a></li>
</xsl:for-each>
</ul>
</xsl>

我想得到的输出:
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab"><a href="#">Bla bla 1</a></li>
<li class="TabbedPanelsTab"><a href="#">Bla bla 2</a></li>
</ul>

使用我的 XSL,我得到两个 <ul> 的输出元素。所以我的问题包括两件事:
1)我上面的问题必须如何转换?
2) 你如何在 XSL 中处理像 for-each 这样的循环,让它更“受控制”?

最佳答案

您几乎不需要使用 for-each在 XSL 中,如果您发现自己在使用它,您可能会错过 XSL 的重要功能。

通过为 HeadLine 提供模板,您的案例可以更加惯用地表达。元素(包含您的 <li>...</li> 元素),然后使用 <xsl:apply-templates/><ul>WideTeaserElement 中的元素模板。

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match='Module'>
<ul class='TabbedPanelsTabGroup'>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match='Headline'>
<li class='TabbedPanelsTab'><a href='#'><xsl:apply-templates/></a></li>
</xsl:template>
</xsl:stylesheet>

关于xml - 可以更好地控制 xsl/xpath 中的 for-each 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3119746/

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