Hi there, Unfortunately I have a problem with the client lib "xmlrpc.inc":
In the Documentation http://xmlrpc.usefulinc.com/doc/xmlrpcval.html I read: The elements of the array must be xmlrpcval objects themselves. Now, I do a request via $client->send, the serialized form looks like this: <methodResponse> <params> <param> <value><struct> = <member><name>displayName</name> <value><string>/</string></value> = </member> <member><name>dataType</name> = <value><string>resource</string></value> </member> = <member><name>size</name> <value><int>0</int></value> </member> = <member><name>parentUri</name> <value><string>/</string></value> = </member> <member><name>uri</name> <value><string>/</string></value> = </member> <member><name>folder</name> = <value><boolean>1</boolean></value> </member> <member><name>id</name> = <value><string>/</string></value> </member> </struct></value> </param> = </params> </methodResponse> The response contains an xmlrpcval whos value is an associative array, but the values of that array are NOT xmlrpcval objects but string/boolean/int. $response=$client->send(...); $value=$response->value(); $rpcval=$value->getval(); gettype($rpcval['uri']) is string and not Object of xmlrpcval!!! THIS DOES NOT APPLY TO THE DOCUMENTATION. Now when I receive a list of such objects, everything is fine: <methodResponse> <params> <param> <value><array> <data> <value><struct> = <member><name>displayName</name> <value><string>/users</string></value> = </member> <member><name>dataType</name> = <value><string>resource</string></value> </member> = <member><name>size</name> <value><int>0</int></value> </member> = <member><name>parentUri</name> <value><string>/</string></value> = </member> <member><name>uri</name> = <value><string>/users</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> <value><string>/users</string></value> = </member> </struct></value> <value><struct> = <member><name>displayName</name> <value><string>/groups</string></value> = </member> <member><name>dataType</name> = <value><string>resource</string></value> </member> = <member><name>size</name> <value><int>0</int></value> </member> = <member><name>parentUri</name> <value><string>/</string></value> = </member> <member><name>uri</name> = <value><string>/groups</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> = <value><string>/groups</string></value> </member> </struct></value> = <value><struct> <member><name>displayName</name> = <value><string>/actions</string></value> </member> = <member><name>dataType</name> <value><string>resource</string></value> = </member> <member><name>size</name> <value><int>0</int></value> = </member> <member><name>parentUri</name> = <value><string>/</string></value> </member> <member><name>uri</name> = <value><string>/actions</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> = <value><string>/actions</string></value> </member> </struct></value> = <value><struct> <member><name>displayName</name> = <value><string>/files</string></value> </member> = <member><name>dataType</name> <value><string>resource</string></value> = </member> <member><name>size</name> <value><int>0</int></value> = </member> <member><name>parentUri</name> = <value><string>/</string></value> </member> <member><name>uri</name> = <value><string>/files</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> <value><string>/files</string></value> = </member> </struct></value> <value><struct> = <member><name>displayName</name> = <value><string>/history</string></value> </member> = <member><name>dataType</name> <value><string>resource</string></value> = </member> <member><name>size</name> <value><int>0</int></value> = </member> <member><name>parentUri</name> = <value><string>/</string></value> </member> <member><name>uri</name> = <value><string>/history</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> = <value><string>/history</string></value> </member> </struct></value> = <value><struct> <member><name>displayName</name> = <value><string>/workspace</string></value> </member> = <member><name>dataType</name> <value><string>resource</string></value> = </member> <member><name>size</name> <value><int>0</int></value> = </member> <member><name>parentUri</name> = <value><string>/</string></value> </member> <member><name>uri</name> = <value><string>/workspace</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> = <value><string>/workspace</string></value> </member> </struct></value> = <value><struct> <member><name>displayName</name> = <value><string>/workingresource</string></value> </member> = <member><name>dataType</name> <value><string>resource</string></value> = </member> <member><name>size</name> <value><int>0</int></value> = </member> <member><name>parentUri</name> = <value><string>/</string></value> </member> <member><name>uri</name> = <value><string>/workingresource</string></value> </member> = <member><name>folder</name> <value><boolean>1</boolean></value> = </member> <member><name>id</name> = <value><string>/workingresource</string></value> </member> = </struct></value> </data> </array></value> </param> </params> = </methodResponse> My problem is not, that the result does not apply the documentation, but that it is sometimes right and somtimes not. class Resource { var $id; var $displayName; var $parentId; var $size; var $isFile; var $isLocked; function Resource($rpcval) { //LOOK HERE //what to do here??? //sometimes I would need this $this->id=$rpcval['uri']; //and sometimes this... //$this->id=$rpcval['uri']->getval(); //LOOK HERE $this->displayName=$rpcval['displayName']; $this->parentId=$rpcval['parentUri']; $this->size=$rpcval['size']; $this->isFile=$rpcval['file']; $this->isLocked=$rpcval['locked']; } //... } class ResourceList { var $itemList=array(); function ResourceList($rpcval=0) { if (is_array($rpcval)) { for ($i=0; $i<sizeof($rpcval); $i++) { $this->add(new Resource($rpcval[$i])); } } } //... } Take care, and thank you Kind regards Joerg Hohwiller _______________________________________________ phpxmlrpc mailing list [EMAIL PROTECTED] http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc