2012-08-23 1 views
0

약간의 문제가 있습니다. 나는 조호 CRM API를 사용하고 그것은 나에게 이런 형식의 XML 반환 내가 (simplexml_load_string을 통해 XML 객체를 생성 할 때간단한 XML을 사용하여 XML 문자열을 파싱 할 때 태그 및 데이터 손실

<response uri="/crm/private/xml/Contacts/getRecords"> 
    <result> 
     <Contacts> 
      <row no="1"> 
       <FL val="Contact Owner"> 
        <![CDATA[ Kristo Vaher ]]> 
       </FL> 
       <FL val="Lead Source"> 
        <![CDATA[ Partner ]]> 
       </FL> 
      </row> 
     </Contacts> 
    </result> 
</response> 

는) 다음 나에게 새 개체의 해당 XML의 대부분을 줄 것이다, 그러나 그것은 내게 FL 태그 (CDATA 요소)의 '내부'문자열을주지는 않을 것입니다. 실제로이 데이터는 저에게 흥미 롭습니다.

나의 새로운 SimpleXML이 객체는 같은 데이터를 가지고 :

[1] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [val] => Contact Owner 
      ) 

    ) 

내 추측은 XML이 정말이 방법을 구축하지 않아야 때문에 내가 당신의에서 내부 콘텐츠를 할 수없는 곳 읽었 때문이다 XML 태그에 속성이 있거나 그 반대의 경우 (이것이 맞습니까?)

내 대안은 무엇입니까? 파서를 직접 작성하는 것은 실제로 옵션이 아닙니다.

감사합니다.

답변

1

얻으려면 속성 : 나는 속성을 찾고 있지 않다

echo (string) $load->result->Contacts->row->FL[0]; 
+0

, 나는 CDATA 콘텐츠를 찾고 그것을 SimpleXML을 객체에 존재하지 않습니다

foreach ($value->attributes() as $key => $val){ // get all attributes } 

이 데이터를 얻을 수 있습니다. 귀하의 예제는 CDATA가 아닌 XML 속성의 데이터 만 반환합니다. – kingmaple

+0

내 대답을 업데이트했습니다 ... –

+0

그 덕분에, 고마워! – kingmaple