मैंलोड हो रहा है SimpleXML का उपयोग कर एक्सएमएल कुछ तत्वों
simplexml_load_file($filePath,'SimpleXMLElement', LIBXML_NOCDATA);
और एक्सएमएल के अधिकांश के लिए प्रदान की जाती है कि यह ठीक काम करता है का उपयोग कर एक XML फ़ाइल लोड पर गुण वापस नहीं करता है। हालांकि, एक्सएमएल में कुछ तत्वों के लिए गुणों को '@attributes' सरणी में परिवर्तित नहीं किया गया है, और इसके बजाय आउटपुट फॉर्म गायब हैं। यहां एक नमूना है:
<UI_DEFINITION>
<EDIT_PERMISSION>testPermission</EDIT_PERMISSION>
<DEFAULT_VALUES>
<display>hidden</display>
<css_class>generic_css_class</css_class>
<title>{tag}</title>
<type>string</type>
<wrapper_format>{value}</wrapper_format>
<full_path>false</full_path>
<mandatory>false</mandatory>
<edit_permission>testPermission</edit_permission>
<max_length>0</max_length>
</DEFAULT_VALUES>
<LOOKUPS>
<DB_LOOKUP name="test3">
<VIEW>???</VIEW>
<ID_FIELD>???</ID_FIELD>
<DESCR_FIELD>???</DESCR_FIELD>
<ORDER>??? asc</ORDER>
</DB_LOOKUP>
<DB_LOOKUP name="test1">
<VIEW>???</VIEW>
<ID_FIELD>???</ID_FIELD>
<DESCR_FIELD>???</DESCR_FIELD>
<ORDER>??? asc</ORDER>
</DB_LOOKUP>
</LOOKUPS>
<AREA internal_name="main_details" title="" display="show">
<FIELD lookup="test1" title="Title">Title</FIELD>
<FIELD title="Name">Given_Name</FIELD>
<FIELD title="Mid. Name(s)">Middle_Names</FIELD>
<FIELD title="Family Name">Family_Name</FIELD>
<FIELD title="Gender">Gender</FIELD>
<FIELD title="Born" type="date">Date_of_Birth</FIELD>
<FIELD max_length="20" title="ID">Unique_Identifier</FIELD>
</AREA>
यह print_r से निम्नलिखित उत्पादन (मैं थोड़ा यही समस्या है पर एक लाइन ब्रेक जोड़ दिया है) देता है:
SimpleXMLElement Object ([UI_DEFINITION] => SimpleXMLElement Object ([EDIT_PERMISSION] => testPermission [DEFAULT_VALUES] => SimpleXMLElement Object ([display] => hidden [css_class] => generic_css_class [title] => {tag} [type] => string [wrapper_format] => {value} [full_path] => false [mandatory] => false [edit_permission] => testPermission [max_length] => 0) [LOOKUPS] => SimpleXMLElement Object ([DB_LOOKUP] => Array ([0] => SimpleXMLElement Object ([@attributes] => Array ([name] => test3) [VIEW] => ??? [ID_FIELD] => ??? [DESCR_FIELD] => ??? [ORDER] => ??? asc) [1] => SimpleXMLElement Object ([@attributes] => Array ([name] => test1) [VIEW] => ??? [ID_FIELD] => ??? [DESCR_FIELD] => ??? [ORDER] => ??? asc)))
[AREA] => SimpleXMLElement Object ([@attributes] => Array ([internal_name] => main_details [title] => [display] => show) [FIELD] => Array ([0] => Title [1] => Given_Name [2] => Middle_Names [3] => Family_Name [4] => Gender [5] => Date_of_Birth [6] => Unique_Identifier))))
आप देख सकते हैं, गुण तत्वों को अधिकांश तत्वों में सही ढंग से जोड़ा गया है, लेकिन FIELD तत्वों के लिए नहीं। मैंने उन्हें नाम बदलने की कोशिश की है और ऐसा कोई फर्क नहीं पड़ता।
संपादित करें: मुझे यह भी जोड़ना चाहिए कि मैंने FIELD टैग के साथ FIELD टैग के आस-पास की कोशिश की है, इसका कोई फायदा नहीं हुआ है।
संपादित करें:
मैं एक्सएमएल बेहद सरल बना दिया है, और यह अभी भी वापस नहीं करता है anny गुण:
<UI_DEFINITION>
<FIELD lookup="test1" title="Title">Title</FIELD>
</UI_DEFINITION>
पैदा करता है:
SimpleXMLElement Object ([UI_DEFINITION] => SimpleXMLElement Object ([FIELD] => Title))
मुझे जवाब मिला है, लेकिन 7 घंटे के लिए स्वयं का जवाब नहीं दे सकता। समस्या यह है कि SimpleXML एक ही तत्व पर गुण और पाठ की अनुमति नहीं देता है। जब मैं कर सकता हूं तो मैं एक पूर्ण उत्तर पोस्ट करूंगा। – alitheg