2009-10-18 9 views
17

क्या कोई भी एक सरल एसटीडी क्लास ऑब्जेक्ट को एक सामान्य एसटीडी क्लास ऑब्जेक्ट में कनवर्ट करने का त्वरित तरीका जानता है, बिना प्रत्येक शाखा के मैन्युअल रूप से पुन: प्रयास किए? डेटा लाने के बाद मैं सामान्य ऑब्जेक्ट के साथ बेहतर काम कर रहा हूं।सरलXMLObject को STDClass में त्वरित रूप से परिवर्तित करें?

+0

आपको लगता है कि SimpleXMLElement के सभी सार्वजनिक संपत्तियों का आयात मतलब? त्वरित सापेक्ष है :) – Flavius

+0

आप "बेहतर महसूस करेंगे" एक वैध कारण नहीं है :) stdClass के साथ काम करने के लिए आपके लिए असली कारण क्या है? – chelmertz

+3

ठीक है, मैं एक एक्सएमएल फाइल से डेटा ला रहा हूं और इसे बाद में एक जटिल प्रणाली में संसाधित कर रहा हूं। उस बिंदु से मुझे किसी भी XML/SimpleXML विशिष्ट व्यवहार की आवश्यकता नहीं है, लेकिन केवल कच्चा डेटा। पीएचपी के XML कार्यों नहीं के साथ-साथ भाषा के अन्य भागों के रूप में दस्तावेज हो जाते हैं, और मैं अप्रत्याशित व्यवहार का भय जब यह अभी भी एक SimpleXML तत्व होने के साथ रास्ते में डेटा जोड़ तोड़। एसटीडी क्लास के साथ, मुझे पता है कि क्या उम्मीद करनी है, इसे कैसे छेड़छाड़ करना है, डेटा को प्रमाणित करना आदि। यह "बेहतर महसूस" का लंबा संस्करण है। बेहतर महसूस करना? :) –

उत्तर

4

मैं XMLReader, जो अपने आप डेटा निकालने और एक इच्छाओं जो कुछ डेटा प्रकार के रूप में यह भंडारण करने के लिए अच्छी तरह से उधार देता है, बजाय SimpleXML का उपयोग करते हुए सुझाव देते हैं। यह नियमित रूप से इस्तेमाल किया दस्तावेजों (मैं इसे का उपयोग करें, RSSReader के रूप में विस्तारित, आरएसएस के लिए), बहुत तेजी से उम्मीद की जा सकती से है, और एक बोनस के रूप SimpleXML की तुलना में कम मेमोरी का उपयोग करता लिए विशेष रूप से अच्छा है।

+0

धन्यवाद GZipp, मैं उसमें देख लूंगा। –

1

मुझे नहीं पता कि ऑब्जेक्ट को इसके बिना पुन: परिवर्तित करने का कोई तरीका है या नहीं। मेरा अनुमान है कि आप नहीं कर सकते।

आप यह thread बाहर देख सकते हैं, यह आपको एक सरलXML को सरणी में परिवर्तित करने का तरीका दिखाता है, आप इसे अनुकूलित कर सकते हैं।

+0

डाउनवोट के कारण? –

63
$my_std_class = json_decode(json_encode($my_simplexmlelement)); 
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true); 
+0

यह एक आकर्षण की तरह काम करता है !!! – Eric

+1

+1, सुपर समाधान, महान काम करता है। – Cyclonecode

+2

+1, यह निश्चित रूप से चुना गया उत्तर होना चाहिए। कारण मैं इसे stdClass को बदलने की जरूरत है क्योंकि Drupal SimpleXmlElement वस्तु के साथ मुद्दों है था। –

2

एक और तरीका है:

(object)(array)$my_simplexmlelement 

दुर्भाग्य से अगर आपके बच्चे हैं वे SimpleXMLElement के रूप में रहने के

संबंधित मुद्दे

 संबंधित मुद्दे