के गुण देखते SimpleXML एक सरणी के लिए जिम्मेदार बताते हैं से बचने के लिए किसी भी अधिक सुंदर तरीका है?SimpleXML सरणी
$result = $xml->xpath($xpath);
$element = $result[ 0 ];
$attributes = (array) $element->attributes();
$attributes = $attributes[ '@attributes' ];
मैं वास्तव में कुंजी/मूल्य जोड़ी निकालने के लिए इसे लूप करना नहीं चाहता हूं। मुझे बस एक सरणी में लाने की जरूरत है और फिर इसे पास करना है। मैंने सोचा होगा कि attributes()
डिफ़ॉल्ट रूप से इसे किया होगा, या कम से कम विकल्प दिया होगा। लेकिन मुझे उपरोक्त समाधान को कहीं भी नहीं मिला, मुझे इसे खुद ही समझना पड़ा। क्या मैं इस या कुछ को जटिल बना रहा हूं?
संपादित करें:
मैं अभी भी ऊपर स्क्रिप्ट का उपयोग कर रहा जब तक मैं यकीन नहीं है कि @attributes सरणी तक पहुँचने सुरक्षित है या नहीं के लिए पता है।
हाँ, पर इस के साथ समस्या यह है कि यह अभी भी एक SimpleXML तत्व के रूप में खुद के बारे में सोचती है और इसलिए आप एक स्ट्रिंग के लिए टाइपकास्ट करने के लिए '$ attr [ 'एक']' यह ठीक से काम करने के लिए होता है। मैं इस सरणी को किसी अन्य वर्ग में भेज रहा हूं जो यह नहीं जानता कि यह किस प्रकार का होना चाहिए, केवल इतना है कि इसे एक सरणी होना चाहिए। – mseancole
आह, आपको इसे संपादन में मिला है ... क्या मैं वर्तमान में जो कर रहा हूं उससे लूप "बेहतर" है? मुझे लगता है कि लूप के बिना ऐसा करना तेज होगा। – mseancole
@Showerhead: मुझे नहीं पता कि यह बेहतर है, लेकिन मैंने हमेशा सीखा है कि '' गुण 'संपत्ति को सीधे नहीं पढ़ना है। –