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

Reply via email to