如何将包含 HTML 内容的 SQL 查询数据填充的 XML 文档对象输出到 ColdFusion 中的 XML 文件?
How do I output an XML document object that is populated with SQL query data containing HTML content to an XML file in ColdFusion?
我在 ColdFusion 中编写了一个脚本,它在数据库 table 中获取我网站的所有 HTML 内容并创建一个 XML 文档对象。到目前为止,下面是我的代码。
<!--- Get page info --->
<cfquery name="qPageInfo" datasource="#application.datasource#">
SELECT top 800 id, title, info, app
FROM sitePublic
</cfquery>
<cfdump var="#qPageInfo#">
<!--- Creating XML document object w/ sitePublic data --->
<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<id>#qPageInfo.id#</id>
<pagecontent>#Trim("#XMLFormat(qPageInfo.info)#")#</pagecontent>
</cfoutput>
</page>
</cfxml>
<!---<cfdump var="#xmlPageInfo#">--->
<!--- Need to figure out how to output to a file --->
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
我能够在 XML 文档对象上成功执行 cfdump,它转储了浏览器中所有网页的所有内容 window。
然而,我似乎无法工作的部分是最后一行,<cffile>
将 XML 数据输出到 XML 文件。以下是我在尝试 运行 执行此操作时遇到的错误。
The expression has requested a variable or an intermediate expression result as a simple value. However, the result cannot be converted to a simple value. Simple values are strings, numbers, boolean values, and date/time values. Queries, arrays, and COM objects are examples of complex values.
The most likely cause of the error is that you tried to use a complex value as a simple one. For example, you tried to use a query variable in a cfif tag.
我是 ColdFusion 的新手,所以我的代码中可能遗漏了一些东西,有人知道如何解决这个问题吗?
不确定您是否发布了带有问题的实际代码,但您的 filepath
变量周围有 %
百分号而不是 #
哈希标签。
这个:
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
应该是这样的:
<cffile action="write" file="#filepath#/webcontent.xml" output="#xmlPageInfo#">
更新为使用正确的变量 xmlPageInfo
来写入文件,正如其他人提到的那样。
我对此有大大小小的担忧
第一
<!--- Creating XML document object w/ sitePublic data --->
<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<id>#qPageInfo.id#</id>
<pagecontent>#Trim("#XMLFormat(qPageInfo.info)#")#</pagecontent>
</cfoutput>
</page>
</cfxml>
这将生成很多很多 <id>
和 <pagecontent>
标签
考虑
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
第二
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
现在真正的问题是,qPageInfo
是查询。我怀疑你想写 xml.
更简单的方法是将XML作为字符串处理
<cfsavecontent variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
</cfoutput>
</page>
</cfsavecontent>
<cffile action="write" file="%filepath%/webcontent.xml" output="#xmlPageInfo#">
或
如果您想确保处理的是 xml 而不仅仅是 xml
的字符串
<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
</cfoutput>
</page>
</cfxml>
<cffile action="write" file="%filepath%/webcontent.xml" output="#ToString(xmlPageInfo)#">
我在 ColdFusion 中编写了一个脚本,它在数据库 table 中获取我网站的所有 HTML 内容并创建一个 XML 文档对象。到目前为止,下面是我的代码。
<!--- Get page info --->
<cfquery name="qPageInfo" datasource="#application.datasource#">
SELECT top 800 id, title, info, app
FROM sitePublic
</cfquery>
<cfdump var="#qPageInfo#">
<!--- Creating XML document object w/ sitePublic data --->
<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<id>#qPageInfo.id#</id>
<pagecontent>#Trim("#XMLFormat(qPageInfo.info)#")#</pagecontent>
</cfoutput>
</page>
</cfxml>
<!---<cfdump var="#xmlPageInfo#">--->
<!--- Need to figure out how to output to a file --->
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
我能够在 XML 文档对象上成功执行 cfdump,它转储了浏览器中所有网页的所有内容 window。
然而,我似乎无法工作的部分是最后一行,<cffile>
将 XML 数据输出到 XML 文件。以下是我在尝试 运行 执行此操作时遇到的错误。
The expression has requested a variable or an intermediate expression result as a simple value. However, the result cannot be converted to a simple value. Simple values are strings, numbers, boolean values, and date/time values. Queries, arrays, and COM objects are examples of complex values.
The most likely cause of the error is that you tried to use a complex value as a simple one. For example, you tried to use a query variable in a cfif tag.
我是 ColdFusion 的新手,所以我的代码中可能遗漏了一些东西,有人知道如何解决这个问题吗?
不确定您是否发布了带有问题的实际代码,但您的 filepath
变量周围有 %
百分号而不是 #
哈希标签。
这个:
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
应该是这样的:
<cffile action="write" file="#filepath#/webcontent.xml" output="#xmlPageInfo#">
更新为使用正确的变量 xmlPageInfo
来写入文件,正如其他人提到的那样。
我对此有大大小小的担忧
第一
<!--- Creating XML document object w/ sitePublic data --->
<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<id>#qPageInfo.id#</id>
<pagecontent>#Trim("#XMLFormat(qPageInfo.info)#")#</pagecontent>
</cfoutput>
</page>
</cfxml>
这将生成很多很多 <id>
和 <pagecontent>
标签
考虑
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
第二
<cffile action="write" file="%filepath%/webcontent.xml" output="#qPageInfo#">
现在真正的问题是,qPageInfo
是查询。我怀疑你想写 xml.
更简单的方法是将XML作为字符串处理
<cfsavecontent variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
</cfoutput>
</page>
</cfsavecontent>
<cffile action="write" file="%filepath%/webcontent.xml" output="#xmlPageInfo#">
或
如果您想确保处理的是 xml 而不仅仅是 xml
的字符串<cfxml variable="xmlPageInfo">
<page>
<cfoutput query="qPageInfo">
<pagecontent id="#qPageInfo.id#">#Trim(XMLFormat(qPageInfo.info))#</pagecontent>
</cfoutput>
</page>
</cfxml>
<cffile action="write" file="%filepath%/webcontent.xml" output="#ToString(xmlPageInfo)#">