-2

可能重复:
不能在包含元素的子元素之后创建 XSLT 属性节点 (id)

通常我在 Weblogic12 服务器上执行 XSLT 进程。我一直遇到这个问题

An attribute node (id) cannot be created after the children of the containing element

在迁移之前,我们的团队完全没有问题......

知道为什么吗?我最近从 BEA Weblogic3 升级到 Oracle Enterprise Weblogic 12。还是我缺少库?

这困扰着我们整个团队!谢谢!

4

1 回答 1

1

如果您希望我们找到您的代码错误的地方,您需要向我们展示您的代码。

错误消息(我认为)来自 Saxon,并且可能由于您的配置更改,您选择 Saxon 作为您的 XSLT 处理器,而之前您选择的是 Xalan。在 XSLT 1.0 中,这是一个可恢复的错误,并且允许处理器忽略它(通过简单地不输出有问题的属性)。我认为包含在内总是一个好主意

<xsl:comment><xsl:value-of select="system-property('xsl:vendor')"/></xsl:comment>

在生产代码中,以便您可以看到您正在使用的 XSLT 处理器。

当您执行以下操作时会出现错误:

<a>
   <b/>
   <xsl:attribute name="x">3</xsl:attribute>

您不能这样做,因为没有打开的开始标记来接收该属性。当然,通常情况比这要复杂一些,例如,元素可能是作为 xsl:call-template 指令的结果写入的。

于 2012-09-06T10:14:36.917 回答