0

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

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

结果,我得到的结果是,

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

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

有人可以帮我吗?

4

2 回答 2

0

如果没有看到更多的代码和源数据,就不可能帮助您。您的代码是完全合理的,并且完全能够在给定合适的输入(特别是属性 @Index 的值)的情况下产生您所显示的输出

于 2012-09-30T20:49:10.757 回答
0

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

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

我正在使用一个通用Templates但每个线程Source的 s、Results 和Transformers。这应该是线程安全的。

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

于 2017-04-08T19:00:26.053 回答