Biorąc pod uwagę następujące XML:Właściwy lub zły sposób wyszukiwania w obrębie elementu XML za pomocą XMLSearch?
<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>
Jest to najlepszy sposób na pętli na każdym z rodziców, a następnie wyodrębnić wszystkie dzieci z tego rodzica?
<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>
Powodem, dla którego pytam, jest to, że nigdy nie byłem w stanie wyodrębnić wszystkich elementów potomnych z bieżącego elementu XML.
"Czy to jest potrzebne?" komentarz podświetla linię, którą dodałem, aby linia postępowania działała. Ale czy można usunąć tę linię i jakoś zmienić "XMLSearch (rodzic," dziecko "), aby uzyskać tylko elementy potomne z bieżącego" rodzica "?
Dzięki.
+1 - To jest rzeczywiście rodzaju intuicyjne, że CF nie wydaje się kontekst honorowy w XmlSearch(). – Tomalak