【发布时间】:2016-06-28 21:25:53
【问题描述】:
我目前正在使用 XSLT 并尝试通过属性的子字符串对节点进行分组。唯一的问题是我在无法使用 xsl:key 的环境中工作。我想知道对诸如以下内容进行分组的最佳方法:
<RESULTS>
<RESULT ID="Result:1-1" Value="32" />
<RESULT ID="Result:1-2" Value="3225" />
<RESULT ID="Result:1-3" Value="372" />
<RESULT ID="Result:1-4" Value="64732" />
<RESULT ID="Test:2-1" Value="6362" />
<RESULT ID="Test:2-2" Value="352" />
<RESULT ID="Test:2-3" Value="325" />
<RESULT ID="Result:3-1" Value="3243" />
<RESULT ID="Result:3-2" Value="2332" />
<RESULT ID="Result:3-3" Value="342" />
<RESULT ID="Result:3-4" Value="2134" />
</RESULTS>
这样它就可以在有一个表格的地方进行格式化,该表格按 ID 中的最后一位数字对结果进行分组并显示它们的值。例如,它将 Result:1-1、Test:2-1 和 Result:3-1 分组到第一个表中,并在其下方列出它们的值。
某种预期结果是:
| Table 1 |
|---------|
| 32 |
| 6362 |
| 3243 |
| Table 2 |
|---------|
| 3225 |
| 352 |
| 2332 |
| Table 3 |
|---------|
| 372 |
| 325 |
| 342 |
| Table 4 |
|---------|
| 64732 |
| 2134 |
任何关于某些分组使用方法或某些功能的建议将不胜感激! 感谢您的阅读和您提供的任何帮助!
【问题讨论】:
-
"唯一的问题是我在一个不能使用 xsl:key 的环境中工作。" 这个环境是什么?
xsl:key是 XSLT 语言的一个组成部分。如果您不能使用它,那么您就没有使用 XSLT - 我们怎么知道还有什么在您的环境中不起作用? -
这是我设置的一个非常特殊的环境,它读取 XSLT 的部分内容,通过将信息插入模板来转换信息。密钥要求它超出模板的范围,但我不能这样做。我没有意识到您必须使用语言中的每个预定义元素才能有资格使用它,抱歉。
-
"我没有意识到您必须使用语言中的每个预定义元素才能有资格使用它" w3.org/TR/xslt/#conformance
-
我了解到您认为处理器应该能够处理
xsl:key;然而,即使它不能,其他逻辑仍然符合 XSLT 的工作方式,所以我觉得我正在使用 XSLT。