php - foreach shows attributes of first xml node only -


मैं विशेषताओं foreach global_ivr_variable को प्रदर्शित करने की कोशिश कर रहा हूं:

  $ xml = '& lt; प्रतिक्रिया विधि = "switchvox.ivr.globalVariables.getList" & gt; & LT; परिणाम & gt; & LT; global_ivr_variables & gt; & Lt; global_ivr_variable id = "1" नाम = "cid_name" value = "Smith" / & gt; & Lt; global_ivr_variable id = "2" नाम = "Q_ID_Global" value = "COS" / & gt; & Lt; / global_ivr_variables & gt; & Lt; / परिणाम & gt; & Lt; / प्रतिक्रिया & gt; '; $ Sxml = simplexml_load_string ($ xml); विदेशी मुद्रा ($ sxml- & gt; परिणाम- & gt; वैश्विक_आइआर_विमेयबल्स- & gt; वैश्विक_आइआरएबल- & gt; विशेषताएँ () $ $ = & gt; $ b) {echo $ a। '=' $ बी "& Lt; br & gt;"; }  

मुझे जो मिला है वह पहला नोड का गुण है:

  id = "1" name = "cid_name" value = "Smith"   

मैंने भी निम्नलिखित की कोशिश की है, जिससे मुझे कोई भी मान नहीं मिल रहा है ...

  foreach ($ sxml- & gt; परिणाम- & gt; वैश्विक_आईवीआर_वारेबल के रूप में $ Xvar) {$ a = $ xvar- & gt; वैश्विक_आइवीआर-> - आईडी; आईडी; $ B = $ xvar- & gt; वैश्विक_आइआर_वियलेबल- & gt; नाम; $ C = $ xvar- & gt; वैश्विक_आइआर_वियलेबल- & gt; मान; प्रतिध्वनि 'a ='। $ A। ', B ='। B। ', C ='। $ C। '& Lt; br & gt;'; } A =, b =, c =  

ज़रूरियों की मदद करने के लिए कदम रखने वाले सभी को धन्यवाद!

यदि आप PHP चर का उपयोग करते हैं, तो ये समस्या सामान्य रूप से आसानी से गायब हो जाती है क्योंकि आपका कोड अधिक पठनीय है।

इसके अतिरिक्त आप सरली-नोटेशन के द्वारा SimpleXML में विशेषताओं का उपयोग कर सकते हैं:

<पूर्व> $ चर = $ sxml- & gt; परिणाम- & gt; वैश्विक_आईवीआर_वारेबल- & gt; वैश्विक_आईवीआर_वारेबल; विदेशी मुद्रा ($ परिवर्तनीय $ चर) {printf ("% s =% s \ n", $ variable ['name'], $ variable ['value']); }

यह निम्नलिखित आउटपुट देता है:

  cid_name = स्मिथ Q_ID_Global = COS  

जैसा कि आप के लिए अग्रिम पता है आप जिन विशेषताओं की तलाश कर रहे हैं, वे उन नामों का उपयोग करके आपका कोड अधिक स्पष्ट और स्थिर है।

हालांकि, अगर आप सभी के गुणों को देख रहे हैं वैश्विक_व्यापी_वार्यणीय तत्व, फिर XPath के साथ उन पर पुनरावृति करना आसान है:

  $ allAttributes = $ sxml- & gt; xpath ('// global_ivr_variable / @ *'); विदेशी मुद्रा ($ allAttributes $ विशेषता के रूप में) {printf ("% s =% s \ n", $ attribute- & gt; getName (), $ विशेषता); }  

यह तब निम्नलिखित आउटपुट देता है:

  id = 1 नाम = cid_name मान = स्मिथ आईडी = 2 नाम = Q_ID_Global मान = COS  

यहां पूर्ण कोड-उदाहरण दिया गया है:

  $ xml = & lt; & lt; & lt; XML & lt; प्रतिक्रिया विधि = "switchvox.ivr.globalVariables.getList" & gt; & LT; परिणाम & gt; & LT; global_ivr_variables & gt; & Lt; global_ivr_variable id = "1" नाम = "cid_name" value = "Smith" / & gt; & Lt; global_ivr_variable id = "2" नाम = "Q_ID_Global" value = "COS" / & gt; & Lt; / global_ivr_variables & gt; & Lt; / परिणाम & gt; & Lt; / प्रतिक्रिया & gt; एक्सएमएल; $ Sxml = simplexml_load_string ($ xml); $ चर = $ sxml- & gt; परिणाम- & gt; वैश्विक_आईवीआर_वारेबल- & gt; वैश्विक_आईवीआर_वारेबल; विदेशी मुद्रा ($ परिवर्तनीय $ चर) {printf ("% s =% s \ n", $ variable ['name'], $ variable ['value']); } गूंज "---- \ n"; $ AllAttributes = $ sxml- & gt; xpath ('// global_ivr_variable / @ *'); विदेशी मुद्रा ($ allAttributes $ विशेषता के रूप में) {printf ("% s =% s \ n", $ attribute- & gt; getName (), $ विशेषता); }  

Comments

Popular posts from this blog

sqlite3 - UPDATE a table from the SELECT of another one -

c# - Showing a SelectedItem's Property -

javascript - Render HTML after each iteration in loop -