Load balancing based on SOAP Header

I would need to load balance based on a soap header. I was able to use HTTP header using hdr(myHeader), but I can’t figure out how to read an element in the body of the request.
Say my request has an XML containing the following:
<s:Envelope ><s:Header><id>123456</id> <s:Header > <s:Envelope >....
How can I get the value in id node to use it to create my hash for the load balancing ? Something like

frontend myFrontend
    capture request body id len 15
...
backend myBackend
    balance body(id)
    hash-type consistent

Any help will be appreciated!