2012-09-05 52 views
-2

可能重复:
XSLT attribute node (id) cannot be created after the children of the containing element的WebLogic 12和XSLT错误

通常我做的XSLT处理过Weblogic12服务器。我一直运行到这个问题

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

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

任何想法,为什么?我最近从BEA Weblogic3升级到Oracle Enterprise Weblogic 12.或者我错过了一个库?

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

回答

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指令编写的。

+0

你是对的,那个属性被称为xsl-match的一部分。我可以知道我在哪里发表评论,在错误网站或任何地方都可以。谢谢! – bouncingHippo

+0

你能够帮助解决这个问题http://stackoverflow.com/questions/12289248/xslt-attribute-node-id-cannot-be-created-after-the-children-of-the-containing – bouncingHippo