Hello,

*from xml.etree.ElementTree import ElementTree

_/#Parsing:/_
doc = ElementTree()
doc.parse(xmlFile)
*
/_*#Find tag element:*_/
*doc.find('mytag')*

*_/#iteration over tag element:/_
lname = []
for lib in doc.iter('LibTag'):
     libName = lib.attrib['name']
     lname.append(libName)
*
Regards
Karim

On 01/14/2011 03:55 AM, Terry Carroll wrote:
Does anyone know of a module that can parse out text with XML-like tags as in the example below? I emphasize the "-like" in "XML-like". I don't think I can parse this as XML (can I?).

Sample text between the dashed lines::

---------------------------------
Blah, blah, blah
<AAA>
<BING ZEBRA>
<BANG ROOSTER>
<BOOM GARBONZO BEAN>
<BLIP>SOMETHING ELSE</BLIP>
<BASH>SOMETHING DIFFERENT</BASH>
</AAA>
---------------------------------

I'd like to be able to have a dictionary (or any other structure, really; as long as I can get to the parsed-out pieces) that would look smoothing like:

 {"BING" : "ZEBRA",
  "BANG" : "ROOSTER"
  "BOOM" : "GARBONZO BEAN"
  "BLIP" : "SOMETHING ELSE"
  "BASH" : "SOMETHING DIFFERENT"}

The "Blah, blah, blah" can be tossed away, for all I care.

The basic rule is that the tag either has an operand (e.g., <BING ZEBRA>), in which case the name is the first word and the content is everything else that follows in the tag; or else the tag has no operand, in which case it is matched to a corresponding closing tag (e.g., <BLIP>SOMETHING ELSE</BLIP>), and the content is the material between the two tags.

I think I can assume there are no nested tags.

I could write a state machine to do this, I suppose, but life's short, and I'd rather not re-invent the wheel, if there's a wheel laying around somewhere.

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to