带有cfloop的冷cfset XML变量

问题描述 投票:1回答:2

我想看看您是否能够为我提供一些语法。...我一直在尝试构建一个包含用户数据的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标记。

任何有想法的地方都值得赞赏!

xml coldfusion cfml
2个回答
0
投票

字符串以单引号开头,必须以单引号结尾。但是,我将使用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


0
投票

添加到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>
© www.soinside.com 2019 - 2024. All rights reserved.