2012-05-16 2 views
0

У меня есть XML String. Я хочу получить конкретный результат из этого XML, который динамически изменяется путем выбора.Как я могу получить результат из xml через php?

<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> 

Я хочу получить строку, где Кампания No = CAM01. Как я могу?


Я просто хочу, чтобы запустить этот тип запроса

выберите CAMPAIGNID из Кампании, где кампании No = '$ Вэл'


или преобразовать его в массив


возможно?

+1

вам нужно xpath для запроса читать здесь http://www.php.net/manual/en/simplexmlelement.xpath.php или для выбора синтаксиса использовать xquery –

ответ

0

Вот что делать, в несколько этапов:

  1. Загрузить XML-файл
  2. Получить имя первого элемента
  3. Создать цикл, который будет запускать на каждом дочерний узле, с помощью детей() Функции
  4. Output имя элемента и данных для каждого дочернего узла

А пример код для извлечения данных с помощью простого XML выглядит следующим образом ,

<?php 
$xml = simplexml_load_file("test.xml"); 

echo $xml->getName() . "<br />"; 

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

Это должно помочь вам в получении данных. Спасибо.

+0

при использовании функции simplexml_load_file() появляется предупреждение «simplexml_load_file() [ function.simplexml-load-file]: предупреждение ввода-вывода: не удалось загрузить внешнюю сущность « – Vishal

+0

Я хочу получить строку где Кампания № = CAM01. Как я могу? – Vishal

+0

Это потому, что вы извлекаете XML с удаленного сервера и пытаетесь использовать XML в качестве имени файла. – Deeps23

Смежные вопросы