PHP - XML parsing in php

Asked By Trex Canes
28-May-11 12:59 AM

Hi,
     How to parse a  multi parent node XML file in php 

Here is the Sample XML file

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <struct>
   <member>
    <name>result_count</name>
    <value>
     <int>1</int>
    </value>
   </member>
   <member>
    <name>next_offset</name>
    <value>
     <int>1</int>
    </value>
   </member>

   <member>
    <name>field_list</name>
    <value>
     <array>
      <data>
       <value>
        <struct>
         <member>

          <name>name</name>
          <value>
           <string>id</string>
          </value>
         </member>
         <member>
          <name>type</name>

          <value>
           <string>id</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>ID</string>

          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>1</int>
          </value>
         </member>

         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>

        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>name</string>

          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>name</string>
          </value>
         </member>

         <member>
          <name>label</name>
          <value>
           <string>Alert Type</string>
          </value>
         </member>
         <member>
          <name>required</name>

          <value>
           <int>1</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>

            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>date_entered</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>datetime</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Date Created</string>

          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>

         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>

        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>date_modified</string>

          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>datetime</string>
          </value>
         </member>

         <member>
          <name>label</name>
          <value>
           <string>Date Modified</string>
          </value>
         </member>
         <member>
          <name>required</name>

          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>

            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>

          <name>name</name>
          <value>
           <string>modified_user_id</string>
          </value>
         </member>
         <member>
          <name>type</name>

          <value>
           <string>assigned_user_name</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Modified By</string>

          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>

         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>modified_user_name</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>relate</string>
          </value>
         </member>

         <member>
          <name>label</name>
          <value>
           <string>Modified By</string>
          </value>
         </member>
         <member>
          <name>required</name>

          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>

            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>

          <name>name</name>
          <value>
           <string>created_by</string>
          </value>
         </member>
         <member>
          <name>type</name>

          <value>
           <string>assigned_user_name</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Created By</string>

          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>

         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>

        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>created_by_name</string>

          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>assigned_user_name</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Created By</string>
          </value>
         </member>
         <member>
          <name>required</name>

          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>

            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>

          <name>name</name>
          <value>
           <string>description</string>
          </value>
         </member>
         <member>
          <name>type</name>

          <value>
           <string>text</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Description</string>

          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>

         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>

        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>
          <value>
           <string>deleted</string>

          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>bool</string>
          </value>
         </member>

         <member>
          <name>label</name>
          <value>
           <string>Deleted</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>

            <data/>
           </array>
          </value>
         </member>
         <member>
          <name>default_value</name>
          <value>
           <string>0</string>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>assigned_user_id</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>relate</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Assigned User Id</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>

          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>assigned_user_name</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>relate</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Assigned User Id</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertfilenumber</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>varchar</string>
          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>File Number</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>

          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alertfrequency</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>varchar</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Frequency</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertlastdone</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>date</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Last Done</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>1</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alertduedate</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>date</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Due Date</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>1</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertnotes</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>varchar</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Notes</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alertresult</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>varchar</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Result</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertremindnexton</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>date</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Remind Next On</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>

           <string>alertoverduedueinnext3months</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>bool</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Over Due/Due in next 3 months</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertreason</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>varchar</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Reason</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alertclinic</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>varchar</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Clinic</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>1</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertreviewed</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>bool</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Reviewed</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alerthighpriority</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>bool</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>High Priority</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertresultsrecieveddate</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>date</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Results Recieved Date</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>alertsourceofspecimen</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>varchar</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Source Of Specimen</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>alertcollectionvolume</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>varchar</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Collection Volume</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>mango_patie23_alerts_name</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>relate</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Patients</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>fac12_facil23_alerts_name</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>relate</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Facility</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
       <value>

        <struct>
         <member>
          <name>name</name>
          <value>
           <string>d321_doctor23_alerts_name</string>
          </value>
         </member>
         <member>

          <name>type</name>
          <value>
           <string>relate</string>
          </value>
         </member>
         <member>
          <name>label</name>

          <value>
           <string>Doctors</string>
          </value>
         </member>
         <member>
          <name>required</name>
          <value>
           <int>0</int>

          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>

          </value>
         </member>
        </struct>
       </value>
       <value>
        <struct>
         <member>
          <name>name</name>

          <value>
           <string>modified_by_name</string>
          </value>
         </member>
         <member>
          <name>type</name>
          <value>
           <string>assigned_user_name</string>

          </value>
         </member>
         <member>
          <name>label</name>
          <value>
           <string>Modified By</string>
          </value>
         </member>

         <member>
          <name>required</name>
          <value>
           <int>0</int>
          </value>
         </member>
         <member>
          <name>options</name>
          <value>
           <array>
            <data/>
           </array>
          </value>
         </member>
        </struct>
       </value>
      </data>

     </array>
    </value>
   </member>
   <member>
    <name>entry_list</name>
    <value>
     <array>
      <data>

       <value>
        <struct>
         <member>
          <name>id</name>
          <value>
           <string>86ec1c4b-7487-cca3-e778-4ddba4f62157</string>
          </value>
         </member>

         <member>
          <name>module_name</name>
          <value>
           <string>d123_Alerts</string>
          </value>
         </member>
         <member>
          <name>name_value_list</name>

          <value>
           <array>
            <data>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>

                 <string>assigned_user_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>Patient  K</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>modified_by_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>Administrator</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>created_by_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>Administrator</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>id</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>86ec1c4b-7487-cca3-e778-4ddba4f62157</string>
                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>
                 <string>name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>urgent</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>date_entered</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-24 12:27:17</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>date_modified</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-24 12:27:17</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>modified_user_id</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>1</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>modified_user_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string> Administrator</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>created_by</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>1</string>
                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>
                 <string>description</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>oajflksdjflksdjflksdjflksdjflsd</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>deleted</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>0</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>assigned_user_id</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>27c6d425-a0ed-9048-1509-4ddba328a206</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertfilenumber</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertfrequency</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>low </string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertlastdone</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-19</string>
                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>
                 <string>alertduedate</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-27</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertnotes</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>kjfklsjfd</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertresult</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>jfdlksdfj</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertremindnexton</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-19</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertoverduedueinnext3months</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>1</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertreason</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>
                 <string>alertclinic</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertreviewed</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>1</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alerthighpriority</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>1</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertresultsrecieveddate</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>2011-05-25</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertsourceofspecimen</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>lkajkl</string>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>alertcollectionvolume</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string>lkasjflksdjfl</string>
                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>
                <value>
                 <string>mango_patie23_alerts_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>fac12_facil23_alerts_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
             <value>
              <struct>
               <member>
                <name>name</name>

                <value>
                 <string>d321_doctor23_alerts_name</string>
                </value>
               </member>
               <member>
                <name>value</name>
                <value>
                 <string/>

                </value>
               </member>
              </struct>
             </value>
            </data>
           </array>
          </value>
         </member>
        </struct>

       </value>
      </data>
     </array>
    </value>
   </member>
   <member>
    <name>error</name>
    <value>

     <struct>
      <member>
       <name>number</name>
       <value>
        <string>0</string>
       </value>
      </member>
      <member>

       <name>name</name>
       <value>
        <string>No Error</string>
       </value>
      </member>
      <member>
       <name>description</name>

       <value>
        <string>No Error</string>
       </value>
      </member>
     </struct>
    </value>
   </member>
  </struct>

 </value>
</param>
</params>



  James H replied to Trex Canes
28-May-11 01:00 AM

PHP's XMLReader is what's called a pull parser. Pull parsers differ from a tree/dom based parser in that they can deal with text streams. In other words, they can begin parsing the document before they have the entire document. This differs from a tree based/DOM parser like SimpleXML or DOMDocument that needs to load the entire document into memory before it can do anything.

The advantage is, if you have a 75MB XML file you don't need 75MB of free RAM to deal with it (as you would with a tree based parser). The trade-off is pull parsers never have the context of an entire document. The only have the context of whatever node they happen to be processing at the moment.

Another way to think of it is a tree/dom based parser has to know about every single part of the document because it doesn't know what you're going to ask it for. You and the pull parser, however, have made a different arrangement. It'll keep throwing nodes at you and leave it up to your to deal with their contents.

Here's some example code that is (hopefully) close to what you're after.

$xml = new XMLReader();
$xml->XML(file_get_contents('example.xml'));

$last_node_at_depth = array();
while($xml->read())
{				
	//stash the XML of the entire node in an array indexed by depth
	//you're probably better off stashing exactly what you need from
	$last_node_at_depth[$xml->depth] = $xml->readOuterXML();

	$xml->localName; // gives tag name
	$xml->value; 	 // gives tag value		

	//so, right now we're at depth n in the XML document.  depth n-1 
	//would be our parent node
	if ($xml->depth > 0) {
		//gives the fragment that starts with the parent node		
		$last_node_at_depth[($xml->depth-1)];	
	}
}
  Trex Canes replied to James H
28-May-11 01:11 AM
Hi Srikanth,
     I used your script but the browser shows a blank screen, What shall i do to get the display in the following way

[parent node of xm]   Name  :  value    // child node of xml 

in such similar way

Thanks
  Riley K replied to Trex Canes
28-May-11 01:12 AM
using the expand() function of the XMLReader. It gives a DOM representation of the current xml tag. Use expand() on the parent node, it gives you the DOM element of the parent tag, then using the usual DOMDocument() way of parsing extracted the child values.

//usage
$xml = new XMLReader();
$xml = $xml->XML($xmlResponse);
while($xml->read())
{
$parent = $xml->expand();
 
$firstChildValue = $parent->getElementsByTagName('child')->item(0)->nodeValue;
}
  Anoop S replied to Trex Canes
28-May-11 01:28 AM
Tp Parse XML in php You need 3 major things:

    -A function to handle the start tags
    -A function to handle the data between the tags
    -A function to handle the end tags

function startTag($parser, $data){
  echo
"<b>";
}

function contents($parser, $data){
  echo $data;
}

function endTag($parser, $data){
  echo
"</b><br />";
}


When the script comes across a start tag it will replace it with a <b>. When the script reads data between the tags it will simply output the data; and when an end tag is read it outputs </b><br /> to close the bold tag and go to the next line.

Now for the XML functions, we need to:

-Create the parser
-Set the start and end tag handlers
-Set the data handler
-Open the XML file
-Read the XML file
-Parse the XML data
-Destroy the parser
-Close the XML file

Creating the parser is easy:

$xml_parser = xml_parser_create();

Setting the start tag, end tag, and data handlers are pretty easy as well:

xml_set_element_handler($xml_parser, "startTag", "endTag");

xml_set_character_data_handler($xml_parser, "contents");


The first argument for both of these functions is always the name of the parser we created in the previous step. The next arguments are the functions we created a little earlier. Next up is opening and reading the XML file:

$fp = fopen($file, "r");

$data = fread($fp, 80000);


These are basic file handling functions that you should be familiar with by now. If you need to learn more or just refresh your memory you can check out the great tutorials on php.net.

The next bit of code is the most complex and the last complex thing about this script. Basically this code does two things: 1) it parses through the XML data from the XML file, and 2) if the parse fails it outputs an error message complete with line number.

if(!(xml_parse($xml_parser, $data, feof($fp)))){
  die(
"Error on line " . xml_get_current_line_number($xml_parser));
}


Again the first argument of the function is our parser. The second argument is the data to be parsed, in this case the variable $data. The third argument tells the function to keep parsing until it reaches the end of the file.

The next two lines just wrap up the script. The first one frees up the memory used by the server to create the parser and the second closes the XML file. Both of these lines are very important so do not forget to include them in your script. Failure to do so could result in problems with your server.

xml_parser_free($xml_parser);

fclose($fp
);


Refer this for more details

http://www.kirupa.com/web/xml_php_parse_beginner.htm

 

Create New Account
help
Character is used in Bulgaria - Collation Column "LangText" is varchar data type. INSERT INTO Sentences (LangText) VALUES ('Поиск') Problem occurs when I retrieve via query analyzer by using select statement I got "?????" question marks. Please help hi what error you are getting, can you write the select query you used to retrieve the value Following are insert query INSERT INTO OPTIONS(LANGUAGE, VERSION, TYPE, module, CODE, description, bemerkung, description2, description3) VALUES('DE', 'SCPRLD', '406', 'ALL', 'BG001000', 'ТМУ Бургас', '', '', 'exp'); INSERT INTO OPTIONS(LANGUAGE, VERSION, TYPE, module, CODE, description, bemerkung, description2, description3) VALUES('DE', 'SCPRLD', '406', 'ALL', 'BG001001', 'МП Запад-рибно пристанище exp'); CREATE TABLE options ( language varchar(2) NOT NULL, version varchar(6) NOT NULL, type varchar(3) NOT NULL, module varchar(10) NOT NULL, code varchar(50) NOT NULL, description varchar(5000) NULL, bemerkung varchar
Performance issue in T-SQL with varchar(max) in SQL Server 2005 SP2 SQL Server Hi, In my real code I use a varchar(max) variable to append problem messages for an error report. Without this error tracking my stored proc runs in 10 sec. With varchar(max) handling the proc returns after 14 min !! I downstripped the problem to the two DROP PROCEDURE [dbo].[test_call_vmax] GO CREATE PROCEDURE test_call_vmax WITH EXECUTE AS CALLER AS DECLARE @vmax varchar (MAX) DECLARE @n int SET @vmax = '' SET @n = 1 WHILE (@n < 10000) BEGIN EXECUTE test_vmax test_vmax]') AND objectproperty (id, N'IsProcedure') = 1) DROP PROCEDURE [test_vmax] GO CREATE PROCEDURE [test_vmax](@p_vmax varchar(MAX)OUTPUT) WITH EXECUTE AS CALLER AS - - using + for appending is even worse 8-(( SET GO SQL Server Programming Discussions SQL Server 2005 (1) CREATE PROCEDURE (1) DROP PROCEDURE (1) Varchar (1) Module (1) Proc (1) Report (1) Gespeicherte (1) I would either use CLR custom
Error running DTS script in VB SQL Server Hi We use SqlServer 2000. We saved a actual DTS is run from Enterprise the packages executes fine. We tried to run the module in VB and received an error: test to the Ingres server was successfull. We tried defining the server name as an idea what the problem could be ? Thanks David Greenberg SQL Server Discussions CREATE PROCEDURE (1) Varchar (1) Module (1) Proc (1) Exec (1) VB (1) SpExecutePKG (1) ServerPWD (1) I am not sure proc usp_xxx from .net, which in turn calls the dts - -- CREATE PROCEDURE dbo.usp_xx @prm_Server varchar(255), @prm_PkgName varchar(255), @prm_ServerUID varchar(255), @prm_ServerPWD varchar(255) AS SET NOCOUNT ON - - - - Return Values: - - 0 - success - - 1 - failed to
The conversion of the varchar value overflowed an int column, ALTER procedure [dbo].[sp_PANandBankRemainderMail] as begin declare @date int declare @nickname varchar(200) declare @emailid varchar(200) declare @maxId int declare @mailContent varchar(1000) declare @mailTemplateid int declare @subject varchar(200) declare @BankAccountNumber varchar(100) declare @PAN varchar(100) declare @employeecode varchar(100) select @mailTemplateid = id , @subject = subject, @mailContent = Content from mailstemplate where id = 1 select @date
execute. I am nesting procedure calls, and logging errors, then attempting to re-raise the error without a second logging of the error from the outer procedure call. If I execute a procedure, an error occurs, call the error handler, log it, -reraise it, return code works. When I call a procedure that calls another procedure, and the inner procedure generates an error, logs it, reraises it, the return code is not set, and the outer catch block 1) Can you post an example of both stored procedures, the inner re-raising the error and the outer handling the error. Note that when you re-raise an error it is raised with user error number, not the original error number. You can add