html - 在 XSLT 中使用列表元素

标签 html xml xslt

所以你可以在下面看到我给定的 XML。我匹配了模板并且我已经在学生节点中 (xsl:template match="Class/Student"):

<Class>
    <Heading>This is a sentence.</Heading>
    <Student>Alex</Student>
    <Student>Emilia</Student>
    <Student>John</Student>
</Class>

现在我需要得到所有学生的列表,我想要得到的应该是这样的:

<ul>
    <li>Alex</li>
    <li>Emilia</li>
    <li>John</li>
</ul>

我认为我的思考方式有误,因为我的 XSLT 目前看起来是这样的:

<xsl:template match="Class/Student">
    <ul>
        <xsl:for-each select="../Student">
            <li>
                <xsl:apply-templates/>
            </li>
        </xsl:for-each>
    </ul>
</xsl:template>

但我实际得到的是:

<ul>
    <li>Alex</li>
    <li>Emilia</li>
    <li>John</li>
<ul>
<ul>
    <li>Alex</li>
    <li>Emilia</li>
    <li>John</li>
<ul>
<ul>
    <li>Alex</li>
    <li>Emilia</li>
    <li>John</li>
<ul>

我认为问题出在我使用的 for-each 上,但我不知道在这种情况下我还应该做什么。

最佳答案

你想要每个 Class 一个 ul,而不是每个 Student,所以改变

<xsl:template match="Class/Student">

<xsl:template match="Class">

然后改变

    <xsl:for-each select="../Student">

    <xsl:for-each select="Student">

Class 当前节点的每个 Student 子元素获取一个 li

关于html - 在 XSLT 中使用列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52407424/

相关文章:

html - css动画时间问题

html - OSX Safari 中出现奇怪的黄色背景色

java - 解析元素中包含 XML 的 XML,可以这样做吗

c# - 在最后一个特定节点/元素之后插入 XML 片段

xslt - 如何在变量中创建元素

javascript - Materialise CSS - Select 在 DOM 中没有名称或正确的值

javascript - 添加到 div 的正确方法是什么?

Android:从一个布局 Activity 切换到另一个

php - 合并包含 xsl :include and xsl:import 的多个 XSLT 样式表

.net - 如何允许使用 XslCompiledTransform (.NET) 通过 XSLT 的 document(uri) 函数加载 XML 文档中的 DTD