Avatar of Dan Schimo
Dan Schimo
Flag for United States of America asked on

Coldfusion Create the Structure of Arrays with a Distinct suggestions Words

Hello Experts!

During one of my request for help , I have asked for a logic to convert an xml to Struct of arrays and it was very helpful ...

Related Question

Now we need an update the logic to contain ONLY DISTINCT values in the ARRAY
Please help ...


<suggestions elapsed-time="PT0.010333S">
<term original="dissorder">
<suggestion levenschtein-dist="1">Disorder</suggestion>
<suggestion levenschtein-dist="1">disorder</suggestion>
<suggestion levenschtein-dist="2">Disorders</suggestion>
<suggestion levenschtein-dist="2">disorders</suggestion>
<suggestion levenschtein-dist="2">distorter</suggestion>
</term>
<term original="sleep">
<suggestion levenschtein-dist="0">Sleep</suggestion>
<suggestion levenschtein-dist="0">sleep</suggestion>
<suggestion levenschtein-dist="1">asleep</suggestion>
<suggestion levenschtein-dist="1">seep</suggestion>
<suggestion levenschtein-dist="1">sleeps</suggestion>
</term>
</suggestions>

<cfset terms = xmlSearch(xmlfile, "/suggestions/term")>					
				
					<cfset results  = structNew()>
          <cfloop array="#terms#" index="term">
            <cfset zeroLev = xmlSearch(term, "*[@levenschtein-dist='0']")>
            <cfif ArrayLen(zeroLev) EQ 0 >
                <cfset key = term.XmlAttributes.original >
                <cfset results[key] = []>
                <cfloop array="#term.xmlChildren#" index="child">
                      <cfset arrayAppend(results[key], child.xmlText)>
                </cfloop>
            </cfif>
          </cfloop>

Open in new window

Create-Struct-array-from-XML.jpg
ColdFusion LanguageRegular ExpressionsXML

Avatar of undefined
Last Comment
_agx_

8/22/2022 - Mon
_agx_

CF8 or CF9? Also is it important to maintain the order of the array?
Dan Schimo

ASKER
Cf8
Dan Schimo

ASKER
Cf8 , yes order of the array is important as I am assigning the 1st word in the array as an suggestion
Your help has saved me hundreds of hours of internet surfing.
fblack61
ASKER CERTIFIED SOLUTION
_agx_

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
_agx_

> CF has arrayFind.    But in CF8 you have to do it the long way.

Correction:  CF9 has arrayFind ...
Dan Schimo

ASKER
Works Like a Charm as usual , Could you please shed some light on the chr(7) used in the Code . If you have got some Time....

--Thanks
-Dan.S
_agx_

Sure.  With list functions you must pick a delimiter that doesn't appear within the data or you get the wrong results. chr(7) is the non-printable bell character. It's very unlikely it'll appear in your data.  So it makes a pretty safe delimiter.
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.