simplexml_load_string kan je daarvoor gebruiken
Link gekopieerd
Dankjewel ger !
Ik ben daar al mee bezig geweest maar op een of andere manier werkt dat neit
$test = $client->__getLastResponse();
( hier komt die xml uit die ik in mijn begin post laat zien)
$xml = simplexml_load_string($test);
print_r($xml);
het geeft met hetvolgende
SimpleXMLElement Object ( )
Enig idee wat ik fout doe ?
[size=xsmall]Toevoeging op 25/11/2011 10:58:24: [/size]
Kan het zijn dat het maar tekst is wat ik terug krijg ? inplaats van een xml
Link gekopieerd
Link gekopieerd
Van de
php manual over simplexml_load_string:
"Takes a well-formed XML string and returns it as an object."
Maar als je verder leest, zou je wel de elementen in het object moeten kunnen aanspreken als normaal. Probeer dus eens "echo $xml->Orgid"
Link gekopieerd
Hey Erwin,
Ja ik snap wat je bedoelt maar dat werkt dus niet.. heel vaag vind ik het ook..
Ik heb nu wel al iets meer
$Debiteur = $client->GetData($GetDataParam);
print_r ($Debiteur);
Geeft me alle informatie die ik wil hebben.. heb alleen geen idee hoe ik er mee om moet gaan.. kunnen jullie me hiermee helpen ?
resultaat is
stdClass Object ( [GetDataResult] => 12345Jens Bakels10951)
Link gekopieerd
Laat eens precies zien wat je nu hebt en hoe je die xml string uitleest, gebruik je nog steeds simplexml_load_string?
Link gekopieerd
$client = new SoapClient("http://pad/profitservices/getconnector.asmx?WSDL", array('trace' => 1,'exceptions' => 0 ));
$filter = '<Filters>
<Filter FilterId="Filter 1">
<Field FieldId="DebiteurID" OperatorType="10">10951%</Field>
</Filter>
</Filters>';
$GetDataParam = array('environmentId'=> "naam",'userId'=>"user",'password'=>"pww",'logonAs'=>"",'connectorId'=>"Debiteuren",'filtersXml'=>$filter);
$Debiteur = $client->GetData($GetDataParam);
print_r ($Debiteur);
Resultaat:
stdClass Object ( [GetDataResult] => 12345Jens Bakels10951)
10951 = een debiteurnummer .. ik wil die los kunnen gebruiken.. :-(
Ik zie echt iets over het hoofd, het is zo makkelijk volgens mij, maar ergens doe ik iets niet goed..waardoor ik veel te lang loop te klote nu :(
Link gekopieerd
Jens, er staat een fout in de xml response die je terug krijgt, daarom leest simplexml_load_string het niet, de fout is deze regel <xs:element name="DebiteurID" type="xs:string" minOccurs="0 daar moet dus nog "/> achter, als ik dat aanpas doet ie het wel
Link gekopieerd
Sorry dat is mijn fout geweest..
De xml die ik terug krijg is veel langer, heb hem ingekort tot 3 kolommen.
Iets teveel weggehaalt dus..
Link gekopieerd
Oké, maar het feit blijft dat als ik de xml uit je startpost in een varaibele zet en de aanpassing doe ik gewoon netjes een array terugkrijg.
<?php
$test='<AfasGetConnector>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AfasGetConnector">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Debiteuren">
<xs:complexType>
<xs:sequence>
<xs:element name="OrgId" type="xs:string" minOccurs="0"/>
<xs:element name="Bedrijf" type="xs:string" minOccurs="0"/>
<xs:element name="DebiteurID" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<Debiteuren>
<OrgId>12345</OrgId>
<Bedrijf>Jens Bedrijf </Bedrijf>
<DebiteurID>10951</DebiteurID>
</Debiteuren>
<Debiteuren>
<OrgId>12345</OrgId>
<Bedrijf>Guardian</Bedrijf>
<DebiteurID>10898</DebiteurID>
</Debiteuren>
</AfasGetConnector>';
$array = simplexml_load_string($test);
echo '<pre>';
print_r($array);
echo '</pre>';
?>
Output:
SimpleXMLElement Object
(
[Debiteuren] => Array
(
[0] => SimpleXMLElement Object
(
[OrgId] => 12345
[Bedrijf] => Jens Bedrijf
[DebiteurID] => 10951
)
[1] => SimpleXMLElement Object
(
[OrgId] => 12345
[Bedrijf] => Guardian
[DebiteurID] => 10898
)
)
)
Link gekopieerd