我正在做一個SOAP調用並獲取以XML格式返回的數據。返回的XML有一個標記,我不知道該如何處理。我只需要全部<web_get_debiteuren>
。php從XML文件獲取數據
我想過使用php SimpleXMLElement(http://www.php.net/manual/en/simplexml.examples-basic.php)。但我不能做這樣的事:
$xml = new SimpleXMLElement($result);
echo $xml->soap;
我如何將能夠通過所有結果瓦茲XML文件的<web_get_debiteuren>
一部分?
參見下面的XML:
<?xml version="1.0" encoding="windows-1250"?>
<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">
<soap:body>
<getdatawithoptionsresponse xmlns="urn:Afas.Profit.Services">
<getdatawithoptionsresult>
<AfasGetConnector>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AfasGetConnector">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="web_get_debiteuren">
<xs:complexType>
<xs:sequence>
<xs:element name="Nummer_debiteur" type="xs:string" minOccurs="0"/>
<xs:element name="Naam_debiteur" type="xs:string" minOccurs="0"/>
<xs:element name="E-mail_werk" type="xs:string" minOccurs="0"/>
<xs:element name="Voornaam" type="xs:string" minOccurs="0"/>
<xs:element name="Achternaam" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<web_get_debiteuren>
<Nummer_debiteur>10000</Nummer_debiteur>
<Naam_debiteur>Test</Naam_debiteur>
<Voornaam>Hans</Voornaam>
<Achternaam>Klok</Achternaam>
</web_get_debiteuren>
<web_get_debiteuren>
<Nummer_debiteur>11000</Nummer_debiteur>
<Naam_debiteur>Sven</Naam_debiteur>
<E-mail_werk>[email protected]</E-mail_werk>
<Voornaam>Sven</Voornaam>
<Achternaam>Kramer</Achternaam>
</web_get_debiteuren>
<web_get_debiteuren>
<Nummer_debiteur>11001</Nummer_debiteur>
<Naam_debiteur>Ireen</Naam_debiteur>
<E-mail_werk>[email protected]</E-mail_werk>
<Voornaam>Ireen</Voornaam>
<Achternaam>Wust</Achternaam>
</web_get_debiteuren>
</AfasGetConnector>
</getdatawithoptionsresult>
</getdatawithoptionsresponse>
</soap:body>
</soap:envelope>
如果您使用的是soap,返回應該是對象/數組形式。你如何獲得原始的XML?通過__getLastResponse()之類的調試功能之一? –
__getLastResponse()爲空。 SOAP服務需要NTLM身份驗證,因此結果是由cURL提取的。我發佈的XML是從SOAP調用返回的代碼。 – Timo002