php解析XML相关

   1:  <?php
   2:  if(file_exists("package.xml")){
   3:      $xml = simplexml_load_file("package.xml");
   4:  }
   5:  if($xml){
   6:      print_r($xml->components->component->componentTables->componentTable['name']);
   7:      
   8:  }
   9:  ?>

 

 

<package>
  <components>
    <component name="礼物首页" desc="" code="Form249" permissionCtrl="false" loginCtrl="false" id="f89e7df67bd34541bd89166ab74ffc8d">
      <componentOutputs />
      <componentTables>
        <componentTable name="gift_user">
          <componentFields>
            <componentField name="fromUserId" />
            <componentField name="sendWayName" />
            <componentField name="id" />
            <componentField name="cTime" />
            <componentField name="giftPrice" />
            <componentField name="fromUserName" />
            <componentField name="giftImg" />
            <componentField name="sendInfo" />
            <componentField name="toUserId" />
            <componentField name="MasterID" />
            <componentField name="sendWay" />
          </componentFields>
        </componentTable>
        <componentTableRelas />
      </componentTables>
      <componentVariants />
  </components>
</package>

解析后可得出

SimpleXMLElement Object ( [0] => gift_user )

 

如果你想获取xml里面的CDATA数据,那么需要设置一下

<?php
      $xml = simplexml_load_file("package.xml",'SimpleXMLElement',LIBXML_NOCDATA);
       print_r($xml->components->component->propertys->property[4]);
?>
 
 
<propertys>
        <property name="Name"><![CDATA[]]></property>
        <property name="FormLoadAction"><![CDATA[<evaluate id="cf10d3be9d134c06aa3d870b7662ad1e" />]]></property>
        <property name="OuterJoinTableName"><![CDATA[]]></property>
        <property name="TableName"><![CDATA[]]></property>
        <property name="OutputSettings">ssssss<![CDATA[]]></property>
        <property name="ComponentVariantEditor"><![CDATA[]]></property>
        <property name="Width"><![CDATA[960]]></property>
        <property name="BackColor"><![CDATA[240,246,247]]></property>
        <property name="FormCloseAction"><![CDATA[]]></property>
        <property name="Padding"><![CDATA[0,0,0,0]]></property>
        <property name="Height"><![CDATA[902]]></property>
        <property name="OutputCondition"><![CDATA[]]></property>
      </propertys>

 

这样的话就可以获取到

SimpleXMLElement Object ( [@attributes] => Array ( [name] => OutputSettings ) [0] => ssssss )

 

否则,你只能获取到attributes数据,而CDATA是被xml所隐藏的

SimpleXMLElement Object ( [@attributes] => Array ( [name] => OutputSettings ) )

posted on 2013-03-08 23:02  小影帆  阅读(268)  评论(0编辑  收藏  举报

导航