Ya lo he resuelto, despues de mucho pelo perdido aki les dejo el codigo por si a alguien le hace falta, el tema es que cuando trabajamos con SOAP necesitamos registrar los namespace para poder acceder a los elementos asi ke el codigo me quedo de la siguiente forma:
Código PHP:
Ver originalfunction WmSocioRegistradoInsertar($xmlstr){
$error = 0;
$totalInsertados = 0;
$xml = @simplexml_load_string($xmlstr);
$xml->registerXPathNamespace('ns', 'http://www.namespace.com/');
if($xml->xpath('//ns:oWmSocioRegistradoInsertarIn')){
foreach ($xml->children('http://schemas.xmlsoap.org/soap/envelope/')->children('http://www.namespace.com/')->WmSocioRegistradoInsertar->oWmSocioRegistradoInsertarIn as $cliente){
$sUsuarioWS = trim($cliente->sUsuarioWS);
$sPassWS = trim($cliente->sPassWS);
$sUsername = trim($cliente->sUsername);
$sPassword = trim($cliente->sPassword);
$sNombre = trim($cliente->sNombre);
$sLicencia = trim($cliente->sLicencia);
$sSexo = trim($cliente->sSexo);
$dFechaNac = trim($cliente->dFechaNac);
$sMovil = trim($cliente->sMovil);
$sEmail= trim($cliente->sEmail);
$iSocioRegistradoTipoPermiso = trim((int)$cliente->iSocioRegistradoTipoPermiso);
if (($sUsername != "")
&& ($iSocioRegistradoTipoPermiso != "")
&& ($iSocioRegistradoTipoPermiso != 0)
&& (is_numeric($iSocioRegistradoTipoPermiso))){
if (!encontrando($sUsername)){
if(insertando($sUsuarioWS,$sPassWS,$sUsername,$sPassword,$sNombre,$sLicencia,$sSexo,$dFechaNac,$sMovil,$sEmail,$iSocioRegistradoTipoPermiso))
$totalInsertados++;
}
}else{
$error = 1;
}
}
}else{
$error = 2;
}
if ($error == 1){
$error_msj = "Ha dejado campos obligatorios vacíos ó con errores!<br />";
$salida .= "Se han insertado (".$totalInsertados.") registros.";
}elseif($error == 2){
$error_msj = html_entity_decode("No se ha encontrado el contenedor <oWmSocioRegistradoInsertarIn></oWmSocioRegistradoInsertarIn> en su entrada");
$salida = "Se han insertado (".$totalInsertados.") registros.";
}else{
$salida = "Se han insertado (".$totalInsertados.") registros.";
}
$contenido = '<?xml version="1.0" encoding="UTF-8"?>';
$contenido .= '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">';
$contenido .= '<soap:Body><WmSocioRegistradoInsertarResponse xmlns="http://www.namespace.com/">';
$contenido .= '<WmSocioRegistradoInsertarResult>';
$contenido .= '<oError>';
$contenido .= '<iError>1</iError><sMensaje></sMensaje>';
$contenido .= '</oError>';
$contenido .= '<oResp>';
if($error == 0){
$contenido .= '<iResp>1</iResp><sMensaje>Correcto</sMensaje>';
}else{
$contenido .= '<iResp>1</iResp><sMensaje>'.$error_msj.'</sMensaje>';
}
$contenido .= '</oResp>';
$contenido .= '</WmSocioRegistradoInsertarResult>';
$contenido .= '</WmSocioRegistradoInsertarResponse>';
$contenido .= '</soap:Body></soap:Envelope>';
return new soapval('return', 'xsd:string', $contenido);
}
un saludo