Tôi đã tìm thấy nhiều giải thích về cách SoapClient mong bạn đặt thuộc tính trong yêu cầu, nhưng tôi không thể tìm được cách để đọc thuộc tính từ phản hồi.PHP SoapClient và đọc thuộc tính
Ví dụ, phản ứng SoapClient của tôi có những yếu tố trong đó:
...
<ns:index>
<ns:uid expdate="2013-09-03 14:30:00">JOWtest002</ns:uid>
<ns:uid expdate="2013-02-07 15:00:00">JOWtest003</ns:uid>
</ns:index>
...
Tuy nhiên, "expdate" thuộc tính không bao giờ gắn liền với "chỉ số" stdClass
["index"]=>
object(stdClass)#80 (1) {
["uid"]=>
array(2) {
[0]=>
string(10) "JOWtest002"
[1]=>
string(10) "JOWtest003"
}
}
Tôi đã cố gắng sử dụng một sơ đồ lớp SoapClient để liên kết nó với một đối tượng, nhưng thật không may, WSDL không định nghĩa phần tử "uid" như là một complexType, do đó nó không ánh xạ các thuộc tính. Ràng buộc "chỉ mục" chính nó vào một lớp không hoạt động.
Mọi đề xuất? Tôi thực sự muốn tránh phân tích cú pháp XML bằng cách đưa nó vào SimpleXML hoặc DOMDocument.
Việc sử dụng không gian tên có giúp bạn không? http://stackoverflow.com/q/8525020/1513471 –
Cảm ơn bạn. Bạn có thể làm rõ tại sao không gian tên sẽ là một vấn đề? WSDL định nghĩa các vùng tên gói SOAP thông thường và chúng ta sử dụng một không gian tên khác với khai báo trong ví dụ của tôi ở đây. – voodoodrul
Bởi vì không gian tên trỏ đến các thuộc tính xml đó là lý do tại sao tôi đề xuất không gian tên. –