我需要为表选择一些值,但是值没有在xml文件中分组,结构如下:
return new SimpleDateFormat("Z").format(new Date());
我知道如何在对这类数据进行分组时创建循环。当我得到文件时,最大索引是未知的。 在stackoverflow上,我只找到了组的例子,但也许我没有找到正确的关键词。
答案 0 :(得分:0)
让我们首先将您的XML设置为正确的形状。
如果标记(在您的情况下为a
)包含属性,则此属性必须具有值(在“=”之后)。
每个a
标记都必须关闭(在最后的“>”之前包含“/”字符。
所以(可能)您的源XML(包括顶级标记)应该如下所示:
<main>
<a attr="Name"/><v index="1">Lawrence</v>
<a attr="Surname"/><v index="1">Karlton</v>
<a attr="Name"/><v index="2">Ana</v>
<a attr="Surname"/><v index="2">Karlton</v>
<a attr="Average"/><v>75</v>
</main>
让我们做另一个假设,即每个来源“记录”都以<a attr="Name"/>
开头
并继续到下一个<a attr="Name"/>
或父标记的末尾,
以先到者为准。
在这种情况下,你可以:
main
代码的模板。xsl:for-each-group
循环:
select="*"
- 接受所有子标记,group-starting-with="a[@attr='Name']"
- 每个小组都以<a attr="Name"/>
开头。然后,根据每个组的内容,您可以例如:
tr
标记) - 我假设您生成了一个
HTML table
。a
属性的源attr
标记(等于
到输出列名称。)。v
标记中获取此列的值。tr
标记)。