"属性名称使用的非法值"在xslt转换期间

时间:2012-09-30 15:40:07

标签: exception xslt transformation

我正在尝试使用XSLT将XML转换为另一种XML。由于我使用的XSLT和XML要大得多,我无法提供数据。在转换时,我可以看到“用于属性名称的非法值”。在结果XML中,我可以看到一些标签出现两次。低于Ex:

<xslt:variable name="index" select="@Index">
<xslt:element name="EquipmentID-{$index}">
Hello
</xslt:element>

在结果中,我得到了结果,

<EquipmentID-EquipmentID-1>
Hello
</EquipmentID-Equipment-ID-1>

无论我在哪里使用$ index,我都会得到一些尴尬的值。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

如果没有看到更多的代码和源数据,就无法帮助您。您的代码是完全合理的,并且完全能够生成您给出的输出(如特定的@Index的值)

答案 1 :(得分:0)

我知道这是一个非常古老的问题,但这就是我的情况。

我莫名其妙地看到了同样的错误(即,属性名称没有任何问题,并且错误发生在随机位置),原来它是由于使用Xalan版本在不同的线程中同时执行XSL转换2.7.0,它显然有一些错误,它应该是完全线程安全的。

我使用的是常见Templates但每线程SourceResultTransformer。这应该是线程安全的。

不知道错误是什么,但无论如何升级到Xalan 2.7.2解决了这个问题。