我正在做一个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