So after some more work I ended up doing the parsing for the data I need with Java instead of using the property transfer. In my setup I am using the soapUI test as library calls from my java code.
After some troubleshooting I started having similar issues in java for some responses and not others, and it turned to our to be my name space aware setting, and it looks like ReadyApi SoapNG has the same issue.
So basically, my response above had a namespace in it like this, (which i didn't post in my original post as I thought it was irrelevant)
<Response xmlns="http://someUrl">
<e>
<id>f34f9f76-a4d9-412d-8407-f08299595f2a</id>
<name>IronMan</name>
<rank>1</rank>
</e>
<e>
<id>a97f6768-d087-4993-9a48-1a20ae23d27f</id>
<name>Thor</name>
<rank>2</rank>
</e>
<e>
<id>a0cf6c6e-31e3-4f28-98ec-33ae0d665e5d</id>
<name>Hulk</name>
<rank>3</rank>
</e>
</Response>
In Java DocumentBuildFactory, when I set Name Space Aware to false, everything started working. So I tested this in ReadyAPI and it has the same issue.
Basically if I take a soap response that has no namespace (xmlns) value in then the data transfer works fine when I do something like, it gets the correct value:
//*:e[name='Hulk]/*:id[1]
However if the response has a namespace value, then it returns null.
Is there a way around this or is this a bug?