On Wed, Dec 16, 2009 at 10:46 PM, Gabriel Rossetti < gabriel.rosse...@arimaz.com> wrote:
> Hello everyone, > > I'm going nuts with some regex, could someone please show me what I'm doing > wrong? > > I have an XMPP msg : > > <message xmlns='jabber:client' to='n...@host.com'> > <mynode xmlns='myprotocol:core' version='1.0' type='mytype'> > <parameters> > <param1>123</param1> > <param2>456</param2> > </parameters> > <payload type='plain'>...</payload> > </mynode> > <x xmlns='jabber:x:expire' seconds='15'/> > </message> > > the <parameter> node may be absent or empty (<parameter/>), the <x> node > may be absent. I'd like to grab everything exept the <payload> nod and > create something new using regex, with the XMPP message example above I'd > get this : > > <message xmlns='jabber:client' to='n...@host.com'> > <mynode xmlns='myprotocol:core' version='1.0' type='mytype'> > <parameters> > <param1>123</param1> > <param2>456</param2> > </parameters> > </mynode> > <x xmlns='jabber:x:expire' seconds='15'/> > </message> > > for some reason my regex doesn't work correctly : > > r"(<message .*?>).*?(<mynode > .*?>).*?(?:(<parameters>.*?</parameters>)|<parameters/>)?.*?(<x .*/>)?" > > If all you need is to remove payload node ,this could be useful, s1="<message xmlns='jabber:client' to='n...@host.com'><mynode xmlns='myprotocol:core' version='1.0' type='mytype'><parameters><param1>123</param1><param2>456</param2></parameters><payload type='plain'>...</payload></mynode><x xmlns='jabber:x:expire' seconds='15'/></message>" pat=re.compile(r"<payload.*<\/payload>") s1=pat.sub("",s1) -- Regards, S.Selvam
-- http://mail.python.org/mailman/listinfo/python-list