2017-10-05 114 views
0

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

<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。谢谢!

回答

3

在你的cfloops中,你正在循环字符串“fieldList”而不是变量“#fieldList#”。 Coldfusion将“fieldList”视为一个具有1个元素的列表,因此进行单个循环迭代。

另外我不相信你需要cfxml标签内的cfoutput标签。