我正在尝试使用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,我都会得到一些尴尬的值。
有人可以帮我吗?
答案 0 :(得分:0)
如果没有看到更多的代码和源数据,就无法帮助您。您的代码是完全合理的,并且完全能够生成您给出的输出(如特定的@Index的值)
答案 1 :(得分:0)
我知道这是一个非常古老的问题,但这就是我的情况。
我莫名其妙地看到了同样的错误(即,属性名称没有任何问题,并且错误发生在随机位置),原来它是由于使用Xalan版本在不同的线程中同时执行XSL转换2.7.0,它显然有一些错误,它应该是完全线程安全的。
我使用的是常见Templates
但每线程Source
,Result
和Transformer
。这应该是线程安全的。
不知道错误是什么,但无论如何升级到Xalan 2.7.2解决了这个问题。