How can I loop over an XML structure using Coldfusion

Mike's Notes

Note to me. This was listed in CFBreak from Foundeo.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > CFBreak
  • Home > Handbook > 

Last Updated

25/11/2025

How can I loop over an XML structure using Coldfusion

By: ColdFusionDude
Stackoverflow: 08/11/2025

ColdFusionDude

I'm trying to loop over an XML file and output the structure. However, I'm only getting one set of data on the second loop. Below is my code, and below that is a snippet of the XML structure.

<!--
Source - https://stackoverflow.com/q
Posted by ColdFusionDude, modified by community. See post 'Timeline' for change history
Retrieved 2025-11-08, License - CC BY-SA 4.0
-->

<cffile action="read" file="\\srv-cfdev\stcnet1\employee_management\users.xml" variable="xmlContent">
<cfset xmlDoc = XmlParse(xmlContent)>

<cfloop array="#xmlDoc.GroupUserData.Group#" index="Group">
    <ul>
     <cfoutput>
        <li>Group: #Group.XmlAttributes.GroupName#</li>
          <ul>
          <cfloop array="#xmlDoc.GroupUserData.Group.User#" index="Username">
          <li>Username: #UserName.XmlAttributes.Username#</li>
          </cfloop>
          </ul>
    </cfoutput>
     </ul>
</cfloop>

<!--
Source - https://stackoverflow.com/q
Posted by ColdFusionDude, modified by community. See post 'Timeline' for change history
Retrieved 2025-11-08, License - CC BY-SA 4.0
-->
<GroupUserData>
  <Group GroupName="cwadmin">
    <User UserName="badams" UserDescription="Brandon Adams" />
    <User UserName="cardwizuser" UserDescription="" />
    <User UserName="cwdatacard" UserDescription="" />
    <User UserName="cwuser" UserDescription="" />
    <User UserName="wizard" UserDescription="" />
  </Group>
  <Group GroupName="CWBRSUPPORT">
    <User UserName="akopp" UserDescription="Adam Kopp" />
    <User UserName="albert" UserDescription="Paula Albert" />
    <User UserName="iknotter" UserDescription="Isaac Knotter" />
    <User UserName="kknotts" UserDescription="Kelly Knotts" />
    <User UserName="spickett" UserDescription="Skye Pickett" />
  </Group>
  <Group GroupName="CWIT">
    <User UserName="" UserDescription="" />
  </Group>
  <Group GroupName="CWMGMT">
    <User UserName="aallison" UserDescription="Alexis Allison" />
    <User UserName="ababick" UserDescription="Amy Babick" />
    <User UserName="abarnett" UserDescription="Ashley Barnett" />
    <User UserName="abuchholz" UserDescription="Amelia Buchholz" />
    <User UserName="acuster" UserDescription="Amanda Custer" />
    <User UserName="adennis" UserDescription="April Dennis" />
    <User UserName="adickey" UserDescription="Adain Dickey" />
    <User UserName="afleegle" UserDescription="Austin Fleegle" />
    <User UserName="aflesik" UserDescription="Andrew Flesik" />
    <User UserName="agavin" UserDescription="Amanda Gavin" />
    <User UserName="ahenderson" UserDescription="Amy Henderson" />
    <User UserName="aklimchock" UserDescription="Adam Klimchock" />
    <User UserName="aknight" UserDescription="Adam Knight" />
    <User UserName="alowery" UserDescription="Allison Lowery" />
    <User UserName="amcvay" UserDescription="Amy McVay" />
    <User UserName="amyers" UserDescription="Amanda Myers" />
    <User UserName="anaugle" UserDescription="Amy Naugle" />
    <User UserName="apatel" UserDescription="Avani Patel" />
    <User UserName="apecoraro" UserDescription="Alethea Pecoraro" />
    <User UserName="asilbaugh" UserDescription="Alyssa Silbaugh" />
    <User UserName="astrauser" UserDescription="Abigail Strauser" />
    <User UserName="atannous" UserDescription="Aida Tannous" />
    <User UserName="aurban" UserDescription="Andy Urban" />
    <User UserName="awellings" UserDescription="Abigail Wellings" />
    <User UserName="awilson" UserDescription="Toni Wilson" />
    <User UserName="azapotosky" UserDescription="Alison Zapotosky" />
    <User UserName="bdaugherty" UserDescription="Brittany Daugherty" />
    <User UserName="bhenry" UserDescription="Bonnie Henry" />
    <User UserName="bhershberger" UserDescription="Branden Hershberger" />
    <User UserName="billy" UserDescription="Kathryn Billy" />
    <User UserName="bkeener" UserDescription="Breanna Keener" />
    <User UserName="bknecht" UserDescription="Bobbie Jo Knecht" />
    <User UserName="bmurphy" UserDescription="Brenda Murphy" />
    <User UserName="bnulton" UserDescription="Billi Nulton" />
    <User UserName="bparastar" UserDescription="Behnaz Parastar" />
    <User UserName="brehm" UserDescription="Ethny Brehm" />
    <User UserName="bschrock" UserDescription="Beth Schrock" />
    <User UserName="bsnyder" UserDescription="Blair Snyder" />
    <User UserName="bsnyder" UserDescription="Blair Snyder" />
    <User UserName="bweimer" UserDescription="Brandy Weimer" />
    <User UserName="bwertz" UserDescription="Brandy Wertz" />
    <User UserName="cbrumley" UserDescription="Christina Brumley" />
    <User UserName="cbryner" UserDescription="Cindy Bryner" />
    <User UserName="cchurch" UserDescription="Caitlin Church" />
    <User UserName="cdamico" UserDescription="Carson D'Amico" />
    <User UserName="cfike" UserDescription="Charlene Fike" />
    <User UserName="cgarlick" UserDescription="Cheryl Garlick" />
    <User UserName="chahn" UserDescription="Constance Hahn" />
    <User UserName="cjmyers" UserDescription="Candy Myers" />
    <User UserName="cjohns" UserDescription="Chad Johns" />
    <User UserName="cknaus" UserDescription="Cindy Knaus" />
    <User UserName="cmaruca" UserDescription="Caitlin Maruca" />
    <User UserName="cmcelhaney" UserDescription="Colleen McElhaney" />
    <User UserName="costlow" UserDescription="Nancy Costlow" />
    <User UserName="cparks" UserDescription="Christy Parks" />
    <User UserName="cphilip" UserDescription="Cheryl Philip" />
    <User UserName="cpulido" UserDescription="China Pulido" />
    <User UserName="craftis" UserDescription="Caroline Raftis" />
    <User UserName="cschrock" UserDescription="Cindy Schrock" />
    <User UserName="cwilt" UserDescription="Caitlin Wilt" />
    <User UserName="dalcorn" UserDescription="Danielle Alcorn" />
    <User UserName="dcost" UserDescription="Deborah Cost" />
    <User UserName="dcrump" UserDescription="Daniel Crump" />
    <User UserName="dfisher" UserDescription="Desiree Fisher" />
    <User UserName="dgarlitz" UserDescription="Dashanti Garlitz" />
    <User UserName="dkelly" UserDescription="Dixie Kelly" />
    <User UserName="dking" UserDescription="Donna King" />
    <User UserName="dremaley" UserDescription="David Remaley" />
    <User UserName="dringer" UserDescription="Donni Ringer" />
    <User UserName="dshanner" UserDescription="Deven Shanner" />
    <User UserName="dshirley" UserDescription="Doran Shirley" />
    <User UserName="dtate" UserDescription="Diana Tate" />
    <User UserName="dzamarelli" UserDescription="Deborah Zamarelli" />
    <User UserName="edeal" UserDescription="Emily Deal" />
    <User UserName="eglessner" UserDescription="Erin Glessner" />
    <User UserName="emishler" UserDescription="Emily Mishler" />
    <User UserName="epalmer" UserDescription="Elizabeth Palmer" />
    <User UserName="epeltier" UserDescription="Eleanor Peltier" />
    <User UserName="ewilson" UserDescription="Eboni Wilson" />
    <User UserName="fbecker" UserDescription="Faith Becker" />
    <User UserName="fbontrager" UserDescription="Faitha Bontrager" />
    <User UserName="flubovinsky" UserDescription="Faitha Lubovinsky" />
    <User UserName="fthomas" UserDescription="Faith Thomas" />
    <User UserName="fwozniak" UserDescription="Frank Wozniak" />
    <User UserName="ggrippo" UserDescription="Gina Grippo" />
    <User UserName="gzoeller" UserDescription="Gideon Zoeller" />
    <User UserName="harpster" UserDescription="Sharon Harpster" />
    <User UserName="hedmonson" UserDescription="Heather Edmonson" />
    <User UserName="hhaer" UserDescription="Teresa Haer" />
    <User UserName="hharding" UserDescription="Heather Harding" />
    <User UserName="hhudson" UserDescription="Haley Hudson" />
    <User UserName="hkohan" UserDescription="Hannah Kohan" />
    <User UserName="hsherbine" UserDescription="Heather Sherbine" />
    <User UserName="idemopoulos" UserDescription="Ioanna Demopoulos" />
    <User UserName="jalviar" UserDescription="Jeanie Liston-Alviar" />
    <User UserName="jbarber" UserDescription="Judith Barber" />
    <User UserName="jbehory" UserDescription="Jessica Behory" />
    <User UserName="jberger" UserDescription="Justin Berger" />
    <User UserName="jbillie" UserDescription="Jeanette Billy" />
    <User UserName="jbillie" UserDescription="Jeanette Billy" />
    <User UserName="jcuster" UserDescription="Jacob Custer" />
    <User UserName="jevans" UserDescription="John Evans" />
    <User UserName="jgross" UserDescription="Jennifer Gross" />
    <User UserName="jheeney" UserDescription="Jeanine Heeney" />
    <User UserName="jleahey" UserDescription="James Leahey" />
    <User UserName="jlucas" UserDescription="Jeremy Lucas" />
    <User UserName="jmarker" UserDescription="Jensen Marker" />
    <User UserName="jmock" UserDescription="Joann Mock" />
    <User UserName="jorr" UserDescription="Jennifer Orr" />
    <User UserName="jpetruska" UserDescription="Joshua Petruska" />
    <User UserName="jreynolds" UserDescription="Jenifer Reynolds" />
    <User UserName="jschmid" UserDescription="Jessica Schmid" />
    <User UserName="jschmid" UserDescription="Jessica Schmid" />
    <User UserName="jsmith" UserDescription="Jolene Smith" />
    <User UserName="jstewart" UserDescription="James Stewart" />
    <User UserName="jtwigg" UserDescription="Josay Twigg" />
    <User UserName="jwassil" UserDescription="Jacob Wassil" />
    <User UserName="jweaver" UserDescription="Jody Weaver" />
    <User UserName="jzembower" UserDescription="Jodie Zembower" />
    <User UserName="kadams" UserDescription="Kaitlyn Adams" />
    <User UserName="kallan" UserDescription="Katelyn Allan" />
    <User UserName="kanderson" UserDescription="Kimberly Anderson" />
    <User UserName="kbuchanan" UserDescription="Karley Buchanan" />
    <User UserName="kcostello" UserDescription="Kate Costello" />
    <User UserName="kcrocetti" UserDescription="Karen Crocetti" />
    <User UserName="kdehart" UserDescription="Kaitlyn DeHart" />
    <User UserName="kdehart" UserDescription="Kaitlyn DeHart" />
    <User UserName="keaster" UserDescription="Kerri Easter" />
    <User UserName="kerrett" UserDescription="Kaedan Errett" />
    <User UserName="kfullem" UserDescription="Kelley Fullem" />
    <User UserName="kfultz" UserDescription="Kathryn Fultz" />
    <User UserName="khayes" UserDescription="Karen Hayes" />
    <User UserName="khumphrey" UserDescription="Kaitlin Humphrey" />
    <User UserName="klaskoski" UserDescription="Kelsey Laskoski" />
    <User UserName="klazar" UserDescription="Karen Lazar" />
    <User UserName="kleone" UserDescription="Kaitlin Leone" />
    <User UserName="kmcclain" UserDescription="Kim McClain" />
    <User UserName="kmckenzie" UserDescription="Kyle McKenzie" />
    <User UserName="kmcquillis" UserDescription="Kathleen McQuillis" />
    <User UserName="kowade" UserDescription="Kimberly OWade" />
    <User UserName="krichards" UserDescription="Katie Richards" />
    <User UserName="krogers" UserDescription="Kennedi Rogers" />
    <User UserName="kstiffler" UserDescription="Kylie Stiffler" />
    <User UserName="kswink" UserDescription="Kayla Swink" />
    <User UserName="kswink" UserDescription="Kayla Swink" />
    <User UserName="ktomasic" UserDescription="Kristin Tomasic" />
    <User UserName="kvarljen" UserDescription="Katherine Varljen" />
    <User UserName="latuch" UserDescription="Susan Latuch" />
    <User UserName="lbriesmeister" UserDescription="Linda Briesmeister" />
    <User UserName="lehman" UserDescription="Carol Lehman" />
    <User UserName="lgeary" UserDescription="Lisa Geary" />
    <User UserName="lluckett" UserDescription="Lilly Luckett" />
    <User UserName="lmcnamara" UserDescription="Lynn McNamara" />
    <User UserName="lotto" UserDescription="Lisa Otto" />
    <User UserName="ltorruiso" UserDescription="Laurie Torruiso" />
    <User UserName="lwascak" UserDescription="Luke Wascak" />
    <User UserName="macy" UserDescription="Denise Macy" />
    <User UserName="mbaldwin" UserDescription="Melanie Baldwin" />
    <User UserName="mboyer" UserDescription="Melanie Boyer" />
    <User UserName="mdmiller" UserDescription="Michael Miller" />
    <User UserName="metheney" UserDescription="Sherry Metheney" />
    <User UserName="mfrankenberry" UserDescription="McKenna Frankenberry" />
    <User UserName="mgraham" UserDescription="Madison Graham" />
    <User UserName="mhare" UserDescription="Megan Hare" />
    <User UserName="mhixson" UserDescription="Mary Jo Hixson" />
    <User UserName="mkondrich" UserDescription="Marilyn Kondrich" />
    <User UserName="mkoontz" UserDescription="Madison Koontz" />
    <User UserName="mkopera" UserDescription="Melanie Kopera" />
    <User UserName="mlippert" UserDescription="Madison Lippert" />
    <User UserName="mlittle" UserDescription="Mary Ellen Little" />
    <User UserName="mmears" UserDescription="Megan Mears" />
    <User UserName="mmitchell" UserDescription="Mary Mitchell" />
    <User UserName="molinzock" UserDescription="Marla Olinzock" />
    <User UserName="mreisling" UserDescription="Morgan Reisling" />
    <User UserName="mritchey" UserDescription="Mindy Ritchey" />
    <User UserName="mrodgers" UserDescription="Maura Rodgers" />
    <User UserName="msheeder" UserDescription="Maddie Sheeder" />
    <User UserName="mspiker" UserDescription="Mary Ann Spiker" />
    <User UserName="myuko" UserDescription="Markus Yuko" />
    <User UserName="nhornfeck" UserDescription="Natalie Hornfeck" />
    <User UserName="nicklow" UserDescription="Rebecca Nicklow" />
    <User UserName="nmunson" UserDescription="Nico Munson" />
    <User UserName="odiehl" UserDescription="Olivia Diehl" />
    <User UserName="ofabian" UserDescription="Olivia Fabian" />
    <User UserName="omoore" UserDescription="Owen Moore" />
    <User UserName="pminnick" UserDescription="Pamela Minnick" />
    <User UserName="pmoore" UserDescription="Pamela Moore" />
    <User UserName="psipe" UserDescription="Paula Sipe" />
    <User UserName="qpham" UserDescription="Christine Pham" />
    <User UserName="rbutina" UserDescription="Rose Butina" />
    <User UserName="rfike" UserDescription="Rebecca Fike" />
    <User UserName="rfrankenberry" UserDescription="Riley Frankenberry" />
    <User UserName="rgoins" UserDescription="Roxanne Goins" />
    <User UserName="rola" UserDescription="Richard Ola" />
    <User UserName="rthomas" UserDescription="Robby Thomas" />
    <User UserName="satchison" UserDescription="Savannah Atchison" />
    <User UserName="sbritt" UserDescription="Sean Britt" />
    <User UserName="schero" UserDescription="Samantha Chero" />
    <User UserName="schmucker" UserDescription="Kamala Schmucker" />
    <User UserName="sfolton" UserDescription="Sean Folton" />
    <User UserName="sgrote" UserDescription="Sherry Grote" />
    <User UserName="shawkins" UserDescription="Shelby Hawkins" />
    <User UserName="shess" UserDescription="Sherry Hess" />
    <User UserName="shillen" UserDescription="Sara Hillen" />
    <User UserName="showe" UserDescription="Samantha Howe" />
    <User UserName="sleasure" UserDescription="Sasha Leasure" />
    <User UserName="smeyers" UserDescription="Seth Meyers" />
    <User UserName="smorris" UserDescription="Sarah Morris" />
    <User UserName="smundorf" UserDescription="Sharon Mundorf" />
    <User UserName="spickett" UserDescription="Skye Pickett" />
    <User UserName="sscarpelli" UserDescription="Sarah Scarpelli" />
    <User UserName="ssensabaugh" UserDescription="Shynia Sensabaugh" />
    <User UserName="sshivler" UserDescription="Seth Shivler" />
    <User UserName="stasker" UserDescription="Shelby Tasker" />
    <User UserName="svivis" UserDescription="Stephen Vivis" />
    <User UserName="swomack" UserDescription="Skylar Womack" />
    <User UserName="tappleby" UserDescription="Teri Appleby" />
    <User UserName="tbalogh" UserDescription="Teresa Balogh" />
    <User UserName="tbouch" UserDescription="Tawni Bouch" />
    <User UserName="tbutala" UserDescription="Timothy Butala" />
    <User UserName="teshaulis" UserDescription="Tanner Shaulis" />
    <User UserName="thaer" UserDescription="Teresa Haer" />
    <User UserName="thubbard" UserDescription="Terry Hubbard" />
    <User UserName="tmarker" UserDescription="Tammy Marker" />
    <User UserName="tmartin" UserDescription="Tremoi Martin" />
    <User UserName="tmasterson" UserDescription="Trent Masterson" />
    <User UserName="tmcintosh" UserDescription="Trish McIntosh" />
    <User UserName="tmorris" UserDescription="Tonya Morris" />
    <User UserName="triehl" UserDescription="Tyler Riehl" />
    <User UserName="trodman" UserDescription="Tyler Rodman" />
    <User UserName="tshaulis" UserDescription="Tanner Shaulis" />
    <User UserName="tspruell" UserDescription="Tabitha Spruell" />
    <User UserName="tstairs" UserDescription="Tina Stairs" />
    <User UserName="vguynn" UserDescription="Victoria Guynn" />
    <User UserName="vmankey" UserDescription="Vanessa Mankey" />
    <User UserName="vmatieszyn" UserDescription="Vicki Matieszyn" />
    <User UserName="waldron" UserDescription="Carrie Waldron" />
    <User UserName="whixen" UserDescription="Wendy Hixen" />
    <User UserName="wright" UserDescription="Barbara Wright" />
    <User UserName="wshaulis" UserDescription="William Shaulis" />
    <User UserName="zhenry" UserDescription="Zachary Henry" />
  </Group>
  <Group GroupName="CWUSERS">
    <User UserName="abarr" UserDescription="Ava Barr" />
    <User UserName="abuchholz" UserDescription="Amelia Buchholz" />
    <User UserName="agrimes" UserDescription="Ashlee Grimes" />
    <User UserName="bburkhart" UserDescription="Brionna Burkhart" />
    <User UserName="bburt" UserDescription="Brionna Burt" />
    <User UserName="bknecht" UserDescription="Bobbie Jo Knecht" />
    <User UserName="bussard" UserDescription="Wanda Bussard" />
    <User UserName="bwertz" UserDescription="Brandy Wertz" />
    <User UserName="costlow" UserDescription="Nancy Costlow" />
    <User UserName="cstutzman" UserDescription="Corinne Stutzman" />
    <User UserName="dgunby" UserDescription="Dasia Gunby" />
    <User UserName="emowery" UserDescription="Emma Mowery" />
    <User UserName="garrety" UserDescription="Michael Garrety" />
    <User UserName="gzoeller" UserDescription="Gideon Zoeller" />
    <User UserName="hmiller" UserDescription="Heather Miller" />
    <User UserName="jmarker" UserDescription="Jensen Marker" />
    <User UserName="jromesburg" UserDescription="Jonna Romesburg" />
    <User UserName="kmiller" UserDescription="Kurt Miller" />
    <User UserName="kmiller" UserDescription="Kurt Miller" />
    <User UserName="leaburkett" UserDescription="Lea Burkett" />
    <User UserName="lsmith" UserDescription="Leanne Smith" />
    <User UserName="mmccusker" UserDescription="Melissa McCusker" />
    <User UserName="nmallison" UserDescription="Noah Allison" />
    <User UserName="rmerridith" UserDescription="Robert Merridith" />
    <User UserName="showman" UserDescription="Kimberly Showman" />
    <User UserName="spickett" UserDescription="Skye Pickett" />
    <User UserName="swomack" UserDescription="Skylar Womack" />
    <User UserName="tray" UserDescription="Todd Ray" />
    <User UserName="trodman" UserDescription="Tyler Rodman" />
    <User UserName="wshaulis" UserDescription="William Shaulis" />
  </Group>
  <Group GroupName="global">
    <User UserName="cwdatacard" UserDescription="" />
    <User UserName="wizard" UserDescription="" />
  </Group>
  <Group GroupName="OSI Group">
    <User UserName="cardwizuser" UserDescription="" />
    <User UserName="cwuser" UserDescription="" />
  </Group>
  <Group GroupName="Test Group">
    <User UserName="Justin Herman" UserDescription="Testing" />
  </Group>
  <Group GroupName="UserAdmin">
    <User UserName="gilbert" UserDescription="Michelle Gilbert" />
    <User UserName="kblack" UserDescription="Kristi Black" />
    <User UserName="lichty" UserDescription="Cathy Lichty" />
  </Group>
</GroupUserData>

The loop is outputting the first section of Users for every iteration of the Group loop. What am I doing wrong?


mykaf

It seems your inner loop isn't utilizing what it knows from the outer loop, namely the #group# variable. So it's as if the inner loop is starting over each time. Try using that #group# variable in the inner loop, like this:

<cfloop array="#group.xmlchildren#" index="child">
     <li>#child.xmlAttributes.username#</li>
</cfloop>

Jack Poe

It's not super elegant but this will get you a loop over the outer and inner elements of the XML

<!--
Source - https://stackoverflow.com/a
Posted by Jack Poe
Retrieved 2025-11-08, License - CC BY-SA 4.0
-->

<cfif fileExists('#expandpath('.')#\users.xml')>
    
        <!--- read and parse the XML --->
        <cffile action="READ" variable="xmlText" file="#expandpath('.')#\users.xml">
        <cfset xmlDoc = XMLParse(xmlText)>
        <!--- set a variable for the top level of the data --->
        <cfset aAccount = xmlDoc.GroupUserData>
        
        <cfoutput>
                
            <!--- loop over the outer element - the groups --->
            <cfloop index="x" from="1" to="#arraylen(aAccount.Group)#">

                <h1>#aAccount.Group[x].XMLAttributes.groupname#</h1>

                    <!--- loop over the inner elements - users --->
                    <cfloop index="i" from="1" to="#arrayLen(aAccount.Group[x].User)#">

                        #aAccount.Group[x].User[i].XMLAttributes.UserDescription# 
                        &bull;
                        #aAccount.Group[x].User[i].XMLAttributes.UserName#<br>

                    </cfloop>

            </cfloop>
                
        </cfoutput>
                
    </cfif>

No comments:

Post a Comment