2011-08-15 5 views
3

안녕 객체 나 XML이 다음과 같은 부분이 : 내가 사용하는 경우얻기 값은

$item->Driver->GivenName; 

:하지만

...... 
      <Result number="4" position="1" points="25"> 
       <Driver driverId="button" url="http://en.wikipedia.org/wiki/Jenson_Button"> 
        <GivenName>Jenson</GivenName> 
        <FamilyName>Button</FamilyName> 
        <DateOfBirth>1980-01-19</DateOfBirth> 
        <Nationality>British</Nationality> 
       </Driver> 
...... 

내가 givenName과를 얻기 위해 쉽게 다음을 사용할 수 있습니다

$item->Driver->FamilyName; 

SimpleXMLElement 개체()가 표시됩니다.

나는 주위를 둘러 보았고 그것이 문자열에 전달하는 것과 관련이 있다는 것을 알았지 만 화면에 아무 것도 얻지 못했습니다. 심지어 SimpleXMLElement 객체도 아닙니다.

GivenName의 형제이기 때문에 이해가되지 않습니다.

print_r ($item->Driver->GivenName); 
print_r ($item->Driver->FamilyName); 

출력 :

SimpleXMLElement Object 
(
    [0] => Jenson 
) 
SimpleXMLElement Object 
(
    [0] => Button 
) 

당신은을 얻기 위해 명시 적 캐스트를 사용할 수 있습니다

+0

이 SimpleXMLObject의 반환되거나 XML 태그가 비어있는 경우. I.E : 코드를 게시 할 수 있습니까? –

답변

6

당신은 당신이 인 print_r()를 사용하는 경우가 나타납니다 두 경우 모두,에 SimpleXMLElement 개체를 얻을 값을 문자열로 사용 :

$givenNameString = (string) $item->Driver->GivenName; 
$familyNameString = (string) $item->Driver->FamilyName; 
1

PHP를 이해하려면 bel와 같은 객체에 강제로 타입 캐스팅을 제공해야한다는 것을 이해해야합니다. 아야 :

$givenName = (array) $item->Driver->GivenName; 
$familyName = (array) $item->Driver->FamilyName; 

print_r($givenName); 
print_r($familyName); 

출력 : 요소 (아이들)이 중첩 된 때

Array ([0] => 'Jenson') 
Array ([0] => 'Button')