良い一日 -
ColdFusion 9 では、次のように XML パラメータを xmlTransform() に渡すことができました。
<cfxml variable="parm">
<users>
<user>Joe Blow</user>
<user>Jane Doe</user>
</users>
</cfxml>
<cfset params=structNew()>
<cfset params["users"]=parm>
<cfset newXML=xmlTransform(xmlFile,xslFile,params)>
XSL では、"users" 引数を受け入れることができます。
<xsl:param name="users" select="." />
それを変数として使用したり、XPath を実行したりします。
ただし、ColdFusion 10 では、XML 引数を XSL に渡すとエラーが発生します。これはまったく役に立たず、エラー ログに詳細が表示されません。
表示されるエラーは次のとおりです。
An error occured while Transforming an XML document.
と
coldfusion.xml.XmlProcessException: XML ドキュメントの変換中にエラーが発生しました。coldfusion.xml.XmlProcessor.doTransform(XmlProcessor.java:508) で coldfusion.xml.XmlProcessor.access$100(XmlProcessor.java:82) で coldfusion.xml.XmlProcessor$3.run(XmlProcessor.java:455) で java. security.AccessController.doPrivileged(ネイティブ メソッド) (coldfusion.xml.XmlProcessor.transform(XmlProcessor.java:451)) で coldfusion.xml.XmlProcessor.transform(XmlProcessor.java:440) で coldfusion.runtime.CFPage.XmlTransform(CFPage. java:359) cftestxml2ecfm41929416.runPage(E:\test\testxml.cfm:36) で coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244) で coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java: 444) coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) で coldfusion.filter.IpFilter.invoke(IpFilter.java:64) で coldfusion.filter.
具体的には、XML を引数として渡すアクションに絞り込みました。XML ではなく文字列に変更すると、このエラーが発生しないという意味で "機能" します。空の XSLT の場合はこれで問題ありませんが、データに対して XPath を使用できるように、もちろん XML として渡す必要があります。
ColdFusion 10 は、XML パラメータを xmlTransform() に使用できないように変更されましたか? どんな助けでも大歓迎です。