我在玩onError,所以我試圖用一個大的XML文檔對象創建一個錯誤。structDelete不影響淺拷貝?
<cfset XMLByRef = variables.parsedXML.XMLRootElement.XMLChildElement>
<cfset structDelete(variables.parsedXML, "XMLRootElement")>
<cfset startXMLShortLoop = getTickCount()>
<cfloop from = "1" to = "#arrayLen(variables.XMLByRef)#" index = "variables.i">
<cfoutput>#variables.XMLByRef[variables.i].id.xmltext#</cfoutput><br />
</cfloop>
<cfset stopXMLShortLoop = getTickCount()>
我希望得到一個錯誤,因爲我刪除了我引用的結構。
從LiveDocs中:
變量賦值 - 創建一個 附加參考或別名,對 結構。使用一個變量名稱對數據進行的任何更改 使用一個變量名稱會更改您使用 其他變量名稱訪問的 結構。這種技術時,要在本地 變量添加到另一個範圍或 有用的,否則 變化的變量的作用域不 刪除從 原來的範圍變量。
,而不是我
580df1de-3362-ca9b-b287-47795b6cdc17
25a00498-0f68-6f04-a981-56853c0844ed
... ... 。 ..
db49ed8a-0ba6-8644-124a-6d6ebda3aa52
57e57e28-e044-6119-afe2-aebffb549342
毛圈絨12805在297毫秒次
<cfdump var = "#variables#">
顯示有沒有在結構,只是parsedXML.xmlRoot.xmlName與XmlRootElement將價值。 我也試過
<cfset structDelete(variables.parsedXML.XMLRootElement, "XMLChildElement")>
以及structClear for both。
有關從xml文檔對象中刪除的更多信息。 http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78e3.html
有人可以請解釋我的錯誤邏輯嗎?謝謝。
如果你能提供一個更簡單,可運行的代碼示例將是巨大的。另外,只需在普通的CFML頁面上嘗試使用與onError相同的代碼,它是否仍然提供相同的結果? – 2010-06-15 14:12:58
嗯,我可以嘗試,但它建立在xml文件的實際數據上,除了我更改了保護數據的元素名稱。 這是一個正常的CFML頁面。 onError在應用程序中。cfm頁面,而不是像我期望的那樣被觸發@@ cfloop from =「1」to =「#arrayLen(variables.XMLByRef)#」index =「variables.i」> – Travis 2010-06-15 17:17:12