1

良い一日 -

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() に使用できないように変更されましたか? どんな助けでも大歓迎です。

4

2 に答える 2