我想看看您是否能够为我提供一些语法。...我一直在尝试构建一个包含用户数据的XML数据集。但是,当我设置用户数据的循环时,XML包含cfloop代码。
代码如下:
<cfset map_vars = '<MAP>" + "<location>#get_alert.address#</location>" +
<cfloop query="get_users">
"<user_info>" +
"<user_name>#get_users.sub_firstname# #get_users.sub_lastname#</user_name>" +
"<user_lat>#get_users.CAD_Call_lat#</user_lat>" +
"<user_lon>#get_users.CAD_Call_lon#</user_lon>" +
"<user_img>https://s3.amazonaws.com/media.wbur.org/wordpress/1/files/2015/03/AP736858445562.jpg</user_img>" +
"</user_info>" +
</cfloop>
"</MAP>'>
输出是什么
<MAP>" + "<location>12345 LINCOLN HILL RD Martinsville</location>" +
<cfloop query="get_users">
"<user_info>" +
"<user_name>Bill Jones</user_name>" +
"<user_lat>41.1421443662058</user_lat>" +
"<user_lon>-81.5781682078555</user_lon>" +
"<user_img>https://s3.amazonaws.com/media.wbur.org/wordpress/1/files/2015/03/AP736858445562.jpg</user_img>" +
"</user_info>" +
</cfloop>
"</MAP>
所以您可以看到它包含cfloop标记。
任何想法都值得赞赏!
答案 0 :(得分:4)
字符串以单引号开头,并且必须以单引号结尾。但是,我将使用cfsavecontent
标签。这使所有内容更具可读性
<cfsavecontent variable="map_vars"><cfoutput>
<MAP><location>#get_alert.address#</location>
<cfloop query="get_users">
<user_info>
<user_name>#get_users.sub_firstname# #get_users.sub_lastname#</user_name>
<user_lat>#get_users.CAD_Call_lat#</user_lat>
<user_lon>#get_users.CAD_Call_lon#</user_lon>
<user_img>https://s3.amazonaws.com/media.wbur.org/wordpress/1/files/2015/03/AP736858445562.jpg</user_img>
</user_info>
</cfloop>
</MAP>
</cfoutput></cfsavecontent>
有一个cfxml
标签有助于验证:https://cfdocs.org/cfxml
答案 1 :(得分:2)
在Bernhard的答案中,我将添加encodeForXML()
以确保正确地转义了字符串。
<cfsavecontent variable="map_vars"><cfoutput>
<MAP><location>#EncodeForXML(get_alert.address)#</location>
<cfloop query="get_users">
<user_info>
<user_name>#EncodeForXML(get_users.sub_firstname)# #EncodeForXML(get_users.sub_lastname)#</user_name>
<user_lat>#EncodeForXML(get_users.CAD_Call_lat)#</user_lat>
<user_lon>#EncodeForXML(get_users.CAD_Call_lon)#</user_lon>
<user_img>https://s3.amazonaws.com/media.wbur.org/wordpress/1/files/2015/03/AP736858445562.jpg</user_img>
</user_info>
</cfloop>
</MAP>
</cfoutput></cfsavecontent>
答案 2 :(得分:1)
实际上是在玩了几件事之后。。。通过删除map标记之前和之后的单引号使它起作用。
谢谢James&Bernhard的反馈。完美运作。你们是国王!!!
谢谢!