2012-02-16 3 views
0

Я хочу, чтобы разобрать (немного критично) XML с помощью PHP SimpleXML ... Но я могу aither получить атрибут или значение либо ... м не в состоянии разобрать этот XML правильноразобрать сложные XML с PHP простой XML

<?xml version="1.0" encoding="UTF-8" ?> 
<response uri="/crm/private/xml/Leads/getMyRecords"> 
    <result> 
     <Leads> 
      <row no="1"> 
       <FL val="LEADID">418176000000051001</FL> 
       <FL val="SMOWNERID">418176000000047003</FL> 
       <FL val="Lead Owner"><![CDATA[Amit Patil]]> 
       </FL> 
       <FL val="Company"><![CDATA[demo Company]]> 
       </FL> 
       <FL val="First Name"><![CDATA[Test]]> 
       </FL> 
       <FL val="Last Name"><![CDATA[Demo]]> 
       </FL> 
       <FL val="Designation"><![CDATA[Tesing Lead]]> 
       </FL> 
       <FL val="No of Employees"><![CDATA[0]]> 
       </FL> 

И это то, что я являюсь Су далеко

$xml = simplexml_load_file($url); 
if($xml != null){ 
    foreach($xml->result->Leads->row as $key=>$row){ 
     foreach($row->FL as $key=>$val){ 
      echo $val.","; 
     } 
    } 
} 

Как я могу разобрать этот XML с помощью SimpleXML или может быть что-то еще ??

ответ

4

вал является attributeof FL, не содержание ... так что я не уверен, что вы пытаетесь получить при использовании двусмысленно с именем $ Вэл

В коде вы уже должны отображать содержание каждого элемента: для получения атрибутов, используйте

foreach($xml->result->Leads->row as $key=>$row){ 
    foreach($row->FL as $key => $value){ 
     echo $value['val']." => "; 
     echo $value."<br />"; 
    } 
} 

ваш фрагмент XML, это дает:

LEADID => 418176000000051001 
SMOWNERID => 418176000000047003 
Lead Owner => Amit Patil 
Company => demo Company 
First Name => Test 
Last Name => Demo 
Designation => Tesing Lead 
No of Employees => 0 
+0

Я работал над ней в течение 2-3 часов и пошел deeeep внутри и забыл думать simp le ... даже не заметил, что он должен работать, если я думаю, что это массив, как и сделал это :) :) Я решил это, используя этот \t foreach ($ row-> FL as $ val) $ val-> attributes (..) "=" $ Вэл; –

+0

Поблагодарите u sooo за это простое решение и за возвращение к нормальной работе :) :) :) –

+0

На стороне примечания используйте strval ($ value), если вы хотите сохранить строковое значение $ value, так как значение $ is фактически простой объект xml. –

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