Bruno,

Thanks, but the whole reason I need it is to create objects in the tree on the fly.  Every implementation I've seen of Element tree manually assigns values to the nodes and manually places them.  All I care about is that any tags they have are in my list of "valid_tags".  Otherwise they can be in any order, etc.  For instance they could have:

<book>
<title>the good one</title>
<author>ted</author>
<year>1945</year>
</book>

or

<book>
<year>1945</year>
<title>the good one</title>
<author>ted</author>
</book>


I want to avoid the line by line assignments like this:


if name == "book":
# do book stuff
if name == "title":
#do title stuff


I want to assign objects on the fly:


if name in valid_tags:
object = Element(name)
if condition:
object = SubElement(Super, object)


I'd still need an algorithm that walked the tree and created it for me.  That way, if in fact I decide to allow more XML tags in the future, it's simply a matter of adding a few "valid_tags" to the list and it automatically allows them to be created.  Does that make any sense?

Thanks again,
Michael


On Dec 7, 2005, at 5:20 AM, [EMAIL PROTECTED] wrote:

Michael Williams wrote:

I would RTM, but I'm not sure exactly what to look for.  Basically, I 

need to be able to call a variable dynamically.  Meaning something  like

the following:


            -  I don't want to say     OBJECT.VAR      but rather     

OBJECT. ("string")      and have it retrieve the variable (not the value

of  it) if in fact it exists. . .


getattr(obj, 'name', defaultvalue)


You can also implement the special methods __getitem__ and __setitem__

to allow indexed access to attributes, ie:


class FalseDict(object):

  def __init__(self, toto, tata):

     self.toto = toto

     self.tata = tata

  def __getitem__(self, name):

     return getattr(self, name)

  def __setitem__(self, name, value):

     setattr(self, name, value)


f = FalseDict('toto', 'tata')

f['toto']

f['tata'] = 42



The purpose is to create an XML tree myself 


Don't reinvent the wheel. ElementTree (and it's C based brother) are

very good at this.


-- 

bruno desthuilliers

python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for

p in '[EMAIL PROTECTED]'.split('@')])"



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to