Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 235563
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T20:16:30+00:00 2026-05-11T20:16:30+00:00

Given the following XML: <cfsavecontent variable=xml> <root> <parent> <child>I’m the first</child> <child>Second</child> <child>3rd</child> </parent>

  • 0

Given the following XML:

<cfsavecontent variable="xml">
<root>
    <parent>
        <child>I'm the first</child>
        <child>Second</child>
        <child>3rd</child>
    </parent>
    <parent>
        <child>Only child</child>
    </parent>
    <parent>
        <child>I'm 10</child>
        <child>I'm 11!</child>
    </parent>
</root>
</cfsavecontent>

Is this the best way to loop over each parent and then extract all children from that parent?

<cfset xml = XMLParse(Trim(xml))>

<cfset parents = XMLSearch(xml, "//parent")>

<cfloop array="#parents#" index="parent">

    <cfset parent = XMLParse(parent)><!--- Is this needed? --->

    <cfset children = XMLSearch(parent, "//child")>

    <cfloop array="#children#" index="child">
        <cfoutput>#child.XmlText#</cfoutput>
    </cfloop>

</cfloop>

The reason I ask is because I’ve never been able to extract all child elements from the current XML element.

The ‘Is this needed?’ comment highlights the line I added to make the proceeding line work. But is it possible to to remove this line and somehow change ‘XMLSearch(parent, “//child”)’ to only get child elements from the current ‘parent’?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T20:16:30+00:00Added an answer on May 11, 2026 at 8:16 pm
    <cfset parent = XMLParse(parent)><!--- Is this needed? --->
    

    No, it’s not. It’s even a performance penalty because you create a new DOM this way.

    You get an array of XML nodes back from XmlSearch() (why else would you use <cfloop array...?). This means these should be equivalent:

    <!-- new CF8 syntax -->   
    <cfloop array="#parents#" index="parent">
      <cfdump var="#parent#">
    </cfloop>
    
    <!-- old syntax -->   
    <cfloop from="1" to="#ArrayLen(parents)#" index="i">
      <cfdump var="#parents[i]#">
    </cfloop>
    

    To make ColdFusion honor context when searching a node, you need to do:

    XMLSearch(parent, ".//child")
    -------------------^
    

    If you start an XPath expression with "//", ColdFusion obviously searches the entire document the node belongs to, not just that node’s descendants.

    But if you are interested in outputting all <child> elements from the document, why not do this instead:

    <cfset children = XMLSearch(xml, "//child")>
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Given the following XML markup: <root xmlns=Demo> <child name=foo/> </root> and an XPathNavigator positioned
Given the following XML: <root> Pacman <format bold=1 italic=1>rules</format>! </root> What is a better
Given the following XML: <root> <StepFusionSet name=SF1> <StepFusionSet name=SF2> </StepFusionSet> </StepFusionSet> <StepFusionSet name=SF10> </StepFusionSet>
Given the following xml document <root> <childnode0/> <childnode2/> <!--Comment1--> <childnode3/> <childnode4/> <!--Comment2--> </root> I
Given the following XML example we could imagine a schema defining Root as containing
Given the following XML: <root> <a> <b>Correct</b> </a> <a> <b>Correct</b> </a> <a> <b>Oh no!</b>
Given the following XML: <current> <login_name>jd</login_name> </current> <people> <person> <first>John</first> <last>Doe</last> <login_name>jd</login_name> </preson> <person>
Given the following Xml fragment: <root> <sheetData> <row r=1 /> <row r=2 /> <row
Given the following XML variable, how can I replace UNKNOWN in the StateCode node
I have following xml structure: //this is the root <factory ver=123 id=1> //can be

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.