Có ai biết cách nhanh chóng để chuyển đổi một SimpleXMLElement thành một đối tượng STDClass bình thường, mà không cần phải lặp qua từng nhánh một cách thủ công không? Tôi sẽ cảm thấy tốt hơn khi làm việc với một đối tượng bình thường sau khi tìm nạp dữ liệu.Nhanh chóng chuyển đổi simpleXMLObject sang STDClass?
Trả lời
Tôi đề nghị xem xét vào sử dụng XMLReader, mà cho vay cũng chính nó để giải nén dữ liệu và lưu trữ nó như bất cứ loại dữ liệu một mong muốn, thay vì SimpleXML. Nó đặc biệt tốt cho các tài liệu được sử dụng thường xuyên (tôi sử dụng nó, mở rộng là RSSReader, cho RSS), nhanh hơn nhiều so với dự kiến, và tiền thưởng sử dụng ít bộ nhớ hơn SimpleXML.
Cảm ơn GZipp, tôi sẽ xem xét điều đó. –
Tôi không biết nếu có cách nào để chuyển đổi đối tượng mà không cần phải lặp qua đối tượng đó. Tôi đoán là bạn không thể.
Bạn có thể kiểm tra điều này thread, nó cho bạn thấy làm thế nào để chuyển đổi một SimpleXML thành một mảng, bạn có thể điều chỉnh nó.
Lý do cho downvote? –
$my_std_class = json_decode(json_encode($my_simplexmlelement));
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true);
Điều này hoạt động giống như một say mê !!! – Eric
+1, siêu giải pháp, hoạt động tuyệt vời. – Cyclonecode
+1, Điều này chắc chắn sẽ là câu trả lời được chọn. Lý do tôi cần chuyển đổi nó thành stdClass là vì Drupal có vấn đề với đối tượng SimpleXmlElement. –
Một cách khác là:
(object)(array)$my_simplexmlelement
Thật không may nếu bạn có con họ vẫn như SimpleXMLElement
- 1. Làm thế nào để nhanh chóng stdClass tại chỗ
- 2. Cách nhanh chóng để chuyển đổi số nhị phân sang số thập phân
- 3. Làm thế nào để chuyển đổi SimpleXMLObject thành PHP Array?
- 4. atebits Twitter nhanh chóng di chuyển
- 5. Chuyển đổi C# sang PHP
- 6. Có cách nào nhanh chóng để chuyển đổi các đối tượng Java xml sang các đối tượng Scala xml không?
- 7. thực hành tốt nhất git để chuyển đổi nhanh chóng giữa các chi nhánh
- 8. Chuyển đổi đối tượng của lớp stdClass để JSON Object
- 9. yêu cầu lặp lại nhanh chóng loại
- 10. Có cách nào nhanh chóng để chuyển đổi thực thể thành tệp .csv không?
- 11. Python nhanh chóng băm đối tượng có thể thay đổi
- 12. Cách làm cho Tomcat nhanh chóng tải các thay đổi để làm cho phát triển web Java nhanh chóng
- 13. Loại Chuyển đổi từ C sang Java
- 14. Liệt kê các hàm php ở đầu tệp? (hoặc, làm cách nào để nhanh chóng chuyển sang các hàm php?)
- 15. Chuyển đổi sang Enum
- 16. Chuyển đổi sang UCS2
- 17. Phao nhanh để chuyển đổi int (truncate)
- 18. Xcode nhanh chóng chuyển đến Hành động được liên kết với Điều khiển
- 19. có cách nào nhanh chóng để xuất một mảng sang tệp Excel bằng C#?
- 20. Không thể nhanh chóng lớp: org.apache.naming.java.javaURLContextFactory
- 21. Đang tải jQuery một cách nhanh chóng
- 22. Nhanh chóng thêm ghim đơn vào MKMapView?
- 23. Java mảng nhanh chóng danh sách
- 24. Cách nhanh chóng để so sánh inputstreams
- 25. Nhập Excel vào một DataTable nhanh chóng
- 26. Câu hỏi Xcode: Nhanh chóng chuyển đến một bộ chọn/lớp/ký hiệu cụ thể?
- 27. Chuyển đổi phao sang char *
- 28. Chuyển đổi lptstr sang char *
- 29. chuyển đổi html sang javascript
- 30. Chuyển đổi PDF sang PS
Bạn có nghĩa là nhập khẩu tất cả các tài sản công cộng của SimpleXMLElement đó? Nhanh chóng là tương đối :) – Flavius
Bạn sẽ "cảm thấy tốt hơn" không phải là một lý do hợp lệ imo :) Lý do thực sự cho bạn muốn một stdClass để làm việc với là gì? – chelmertz
Vâng, tôi đang tìm nạp dữ liệu từ một tệp XML và xử lý nó sau đó trong một hệ thống khá phức tạp. Từ thời điểm đó, tôi không cần bất kỳ hành vi cụ thể nào của XML/SimpleXML, mà chỉ là dữ liệu thô. Các chức năng XML của PHP có khuynh hướng không được ghi chép đầy đủ như các phần khác của ngôn ngữ, và tôi lo sợ hành vi bất ngờ khi thao tác dữ liệu trên đường đi với nó vẫn là một phần tử đơn giản. Với một STDClass, tôi biết những gì mong đợi, làm thế nào để thao tác nó, xác nhận dữ liệu và vân vân. Đó là phiên bản dài của "cảm thấy tốt hơn". Cảm thấy tốt hơn? :) –