2017-10-05 103 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標籤。