我有一个这样的示例 XML:
<Record id="1">
<Field id="1" name="Field1">
<ListValues>
<ListValue id="1" displayName="Bank">Bank</ListValue>
<ListValue id="2" displayName="Personal">Personal</ListValue>
</ListValues>
</Field>
<Field id="2" name="Field2"/>
</Record>
我需要结合所有的 ID 在我的输出 XML 中创建一个关键字段,如下所示:
<Record>
<KeyField>1-1-12</KeyField>
</Record>
此关键字段是 Record Id、Field Id(Field1 - 始终)和 Field1 的子项的 concat。这些子项(ListValue)可以有超过 100-150 个值,我需要将它们组合起来形成我的关键字段(使用分隔符是可选的)。
目前,我以这种方式执行相同的操作:
<KeyField>
<xsl:value-of select="concat(../Record/@id,'-',Field[@name='Field1']/@id,'-', concat(Field[@name='Field1']/ListValues/ListValue/@id,Field[@name='Field1']/ListValues/ListValue[2]/@id, and so on..))"/>
</KeyField>
问题是如果我有 100-150 个这样的值,我不能继续在 KeyField 元素中添加这些值。有没有办法可以预先计算它并在我的关键字段元素中使用它,另外,我如何遍历所有这些值?
我正在使用 XSL 1.0。