我想提取所有名稱爲「人」的節點(父母/子女)使用ColdFusion,使屬性「圖像1」的值作爲NULL查找使用ColdFusion
<person image1="img1.jpg" image2="img2.jpg">
<person image1="img3.jpg" image2="img4.jpg" />
<person image1="img5.jpg" image2="img6.jpg" />
</person>
我想提取所有名稱爲「人」的節點(父母/子女)使用ColdFusion,使屬性「圖像1」的值作爲NULL查找使用ColdFusion
<person image1="img1.jpg" image2="img2.jpg">
<person image1="img3.jpg" image2="img4.jpg" />
<person image1="img5.jpg" image2="img6.jpg" />
</person>
這裏是一個解決方案,你(編輯)的問題,使用遞歸:
<cfset s = '<person image1="img1.jpg" image2="img2.jpg">
<person image1="img3.jpg" image2="img4.jpg" />
<person image1="img5.jpg" image2="img6.jpg" />
</person>' />
<cfset doc = xmlParse(s) />
<cfdump var="#doc#" label="before" />
<cfset myFunction(doc.xmlRoot) />
<cfdump var="#doc#" label="after" />
<!--- Function --->
<cffunction name="myFunction" output="true">
<cfargument name="doc" type="xml" />
<cfif ARGUMENTS.doc.xmlName eq "person">
<cfloop collection="#ARGUMENTS.doc.xmlAttributes#" item="LOCAL.k">
<p>#ARGUMENTS.doc.xmlAttributes[LOCAL.k]# set to null</p>
<cfset ARGUMENTS.doc.xmlAttributes[LOCAL.k] = "null" />
</cfloop>
</cfif>
<!--- Recursively call for children --->
<cfloop array="#ARGUMENTS.doc.xmlChildren#" index="LOCAL.childElem">
<cfset myFunction(LOCAL.childElem) />
</cfloop>
</cffunction>
希望幫助!
<cfscript>
doc = xmlparse(/*xml from above*/);
selectedElements = xmlsearch(doc, "//language");
for (i=1; i LTE ArrayLen(selectedElements); i = i + 1) {
// do what you want with the nodes here
}
</cfscript>
嗨,感謝您的回答,我修改了我的問題...請檢查問題 – kayteen 2010-12-15 12:35:24
+1,如果只是因爲我太懶了,現在要改變我的答案。 – orangepips 2010-12-15 14:00:55