【问题标题】:"Illegal value used for attribute name" during xslt transformationxslt 转换期间的“属性名称使用了非法值”
【发布时间】:2012-09-30 15:40:07
【问题描述】:

我正在尝试使用 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,我都会得到一些尴尬的值。

有人可以帮我吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow。当您发布代码时,您应该选择文本并单击看起来像 { } 的按钮(或按键盘上的 CTRL+K)以使其格式化。这个问题我已经帮你解决了。

标签: exception xslt transformation


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我知道这是一个很老的问题,但这是我的情况。

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

    我使用的是普通的Templates,但每个线程都使用Sources、Results 和Transformers。这应该是线程安全的。

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

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 2014-12-21
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多