我怎样才能通过php获得xml的结果?

时间:2012-05-16 05:53:53

标签: php xml

我有以下XML字符串。我想从这个通过选择动态改变的XML中获取特定结果。

<response uri="/crm/private/xml/Campaigns/getMyRecords">
  <result>
    <Campaigns>
      <row no="1">
        <FL val="CAMPAIGNID">536661000000249003</FL>
        <FL val="SMOWNERID">536661000000051003</FL>
        <FL val="Campaign Owner">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="Campaign Name">
          <![CDATA[Test Campaign]]>
        </FL>
        <FL val="Status">
          <![CDATA[Active]]>
        </FL>
        <FL val="Expected Revenue">
          <![CDATA[0]]>
        </FL>
        <FL val="Budgeted Cost">
          <![CDATA[0]]>
        </FL>
        <FL val="Actual Cost">
          <![CDATA[0]]>
        </FL>
        <FL val="SMCREATORID">536661000000051003</FL>
        <FL val="Created By">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="MODIFIEDBY">536661000000051003</FL>
        <FL val="Modified By">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="Created Time">
          <![CDATA[2012-05-14 20:33:56]]>
        </FL>
        <FL val="Modified Time">
          <![CDATA[2012-05-14 20:33:56]]>
        </FL>
        <FL val="Campaign No">
          <![CDATA[TCam002]]>
        </FL>
        <FL val="Campaigns Source">
          <![CDATA[Share Junction]]>
        </FL>
      </row>
      <row no="2">
        <FL val="CAMPAIGNID">536661000000198011</FL>
        <FL val="SMOWNERID">536661000000051003</FL>
        <FL val="Campaign Owner">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="Campaign Name">
          <![CDATA[Share Junction]]>
        </FL>
        <FL val="Status">
          <![CDATA[Active]]>
        </FL>
        <FL val="Expected Revenue">
          <![CDATA[0]]>
        </FL>
        <FL val="Budgeted Cost">
          <![CDATA[0]]>
        </FL>
        <FL val="Actual Cost">
          <![CDATA[0]]>
        </FL>
        <FL val="SMCREATORID">536661000000051003</FL>
        <FL val="Created By">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="MODIFIEDBY">536661000000051003</FL>
        <FL val="Modified By">
          <![CDATA[gunjan.sharma]]>
        </FL>
        <FL val="Created Time">
          <![CDATA[2012-05-07 21:43:33]]>
        </FL>
        <FL val="Modified Time">
          <![CDATA[2012-05-07 21:43:33]]>
        </FL>
        <FL val="Campaign No">
          <![CDATA[CAM01]]>
        </FL>
        <FL val="Campaigns Source">
          <![CDATA[Share Junction]]>
        </FL>
      </row>
    </Campaigns>
  </result>
</response>

我想获得广告系列号= CAM01的行。我怎么能?


我只是想运行这种类型的查询

  

从广告系列中选择CAMPAIGNID,其中广告系列号='$ val'


或将其转换为数组


有可能吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

以下是几步所做的事情:

  1. 加载XML文件
  2. 获取第一个元素的名称
  3. 使用children()函数
  4. 创建一个将在每个子节点上触发的循环
  5. 输出每个子节点的元素名称和数据
  6. 使用简单XML提取数据的示例代码如下,

    <?php
     $xml = simplexml_load_file("test.xml");
    
     echo $xml->getName() . "<br />";
    
     foreach($xml->children() as $child)
     {
      echo $child->getName() . ": " . $child . "<br />";
     }
    ?> 
    

    这可以帮助您检索数据。谢谢。