coldfusion循环文件不能正常工作

时间:2015-06-05 17:23:42

标签: loops coldfusion

在ColdFusion中,我正在创建并保存文件,然后循环遍历文件中的字符以显示其中的一部分。这几乎正​​常,但循环有时会插入格式而不仅仅是输出的字符。有时它正在失去格式。以下是原始版本和版本:

created-read

代码:

<cfset colvalue = getPageContext().getRequest().getParameterValues('#col#')>
<cfset repa = colvalue[1]>
<cfloop file="#reppath#moxrep/#repa#.cfm" index="chunk" characters="500"> 
<cfoutput>#chunk#</cfoutput><br> 
</cfloop>

我在代码中做错了吗? ColdFusion循环文件中是否有错误?如果是这样,是否有解决方法?

1 个答案:

答案 0 :(得分:1)

  

<cfloop .. characters="500">

这是因为你的循环使用&#34;字符&#34;属性,限制字符数"..read during each iteration of the loop.."。这对于文本文件来说没问题。但是,由于文件内容是HTML,因此当您尝试将<br>插入任意位置时,它会中断。这会导致部分HTML代码显示而不是呈现。例如:

<div <br> style="text-align: left; ">This will not render correctly</div>

那就是说,为什么要逐行阅读内容而不只是显示整个文件呢?

<强>更新

你真的无法用基本的字符串函数或正则表达式解析HTML - 没有任何可靠性。遇到新行字符并不一定意味着您已到达特定HTML代码块的末尾。对于跨越多行的HTML元素,它是完全有效的。另外,HTML元素经常嵌套。因此几乎不可能确定&#34;逻辑&#34;端点使用字符串函数(基本上就是cfloop正在做的事情)。

相反,我建议using a tool like JSOUP专为解析HTML而设计。解析完文档后,可以非常轻松地访问HTML的特定元素或部分。