使用loop,coldfusion创建xml节点

时间:2017-10-05 16:58:41

标签: xml coldfusion

我想知道是否可以使用循环创建xml对象。例如:

<cfset LOCAL.terminator = "|">
<cfxml variable="XML_file_format">
    <?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <RECORD>
        <cfoutput><cfloop list='fieldList' item="element" index='i'  delimiters=','>
            <FIELD ID="#i#" TERMINATOR="#LOCAL.terminator#" xsi:type="CharTerm"/>
            <cfif i EQ listLen(fieldList) - 1>  
                <cfbreak>
            </cfif>
        </cfloop>
        <FIELD ID="#listLen(fieldList)#" TERMINATOR="\r\n" xsi:type="CharTerm"/>
    </cfoutput></RECORD>
    <ROW>
        <cfoutput><cfloop list='fieldList' item="element" index='i' delimiters=','>
            <COLUMN NAME="#element#" SOURCE="#i#" xsi:type="SQLNVARCHAR"/>
        </cfloop>
    </cfoutput></ROW>
</BCPFORMAT>
</cfxml>

但是当我做这样的事情时,我只得到1个FIELD和1个COLUMN。可以像这样做一个循环吗?还有另一种方法吗?这是在ColdFusion btw。谢谢!

1 个答案:

答案 0 :(得分:3)

在你的cfloops中,你循环遍历字符串&#34; fieldList&#34;不是变量&#34; #fieldList#&#34;。 Coldfusion看到&#34; fieldList&#34;作为具有1个元素的列表,因此是单个循环迭代。

此外,我不相信您需要cfxml标记内的cfoutput标记。