Re: XMLElement with sub-elements?
- To: mathgroup at smc.vnet.net
- Subject: [mg68354] Re: XMLElement with sub-elements?
- From: "Norbert Marxer" <marxer at mec.li>
- Date: Wed, 2 Aug 2006 05:24:13 -0400 (EDT)
- References: <eandl7$a2g$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi To get the values for the "name" AND "industry" tag you can use: factories=Cases[improvements, XMLElement["improvement",{},{ XMLElement["name",{},{name_}], XMLElement["industry",{},{value_}] }]->{name,value},Infinity] You can easily get to the expression inside Cases[improvements,expr-> {name, value}, Infinity] by (1) evaluating your variable improvements (2) selecting the expression XElement[improvement, ...]; the " characters for the strings are inserted automatically (3) replacing the actual names (e.g. "Basic Factory") by name_ (4) replacing the actual industry (e.g. "10") by industry_ Note that there is an error in the example you give (it should read "industry" instead of "Industry"). Best Regards Norbert Marxer www.mec.li AngleWyrm wrote: > Hi, > I want to extract a couple pieces of info from an XML record. I can get just > one XMLElement child element easily enough, but how to get several? > > For example, an xml record set > <recordset> > <improvement> > <name>Basic Factory</name> > <industry>10</industry> > </improvement> > <-- more records --> > </recordset> > > To get all industry values, I can gather all cases where the XMLElement > contains an XMLElement "Industry", like so: > > improvements = Import[ filename, "XML"]; > factories = Cases[improvements, XMLElement[_, _, > {___, XMLElement["Industry", _, {industry_}], ___} > ] -> {industry}, Infinity] > > How would I get the names AND industry values into a list?