2016-07-06 4 views
0

이것은 내 xml 개체입니다. 내 스크립트의 개체 배열에서이를 구문 분석 할 수 없습니다.PHP SimpleXMLElement 속성에 액세스하는 방법은 무엇입니까?

foreach($xml2->users as $item) { 
$userName = $item->attributes()->name; 
} 

내가 뭔가 잘못하고 있는가 : 여기

SimpleXMLElement Object(
[pagination] => SimpleXMLElement Object 
    (
     [@attributes] => Array 
      (
       [pageNumber] => 1 
       [pageSize] => 100 
       [totalAvailable] => 1 
      ) 

    ) 

[users] => SimpleXMLElement Object 
    (
     [0] => SimpleXMLElement Object 
      (
       [@attributes] => Array 
        (
         [id] => xxxxxxxx 
         [name] => xxxxx 
         [siteRole] => xxxxx 
         [lastLogin] => xxxxxx 
         [externalAuthUserId] => 
        ) 
      ) 
    ) 
) 

내 PHP 코드?

+0

예제 번호 5를 참조하십시오. http://php.net/manual/en/simplexml.examples-basic.php – ymas

+0

고마워요! 어리석은 실수. 그것은 효과가 있었다. –

답변

1

나는이 문제를 해결할 수 있었다. 다음은 수정 된 코드입니다.

foreach($xml2->users[0] as $user) { 
    $userName = $user['name']; 
} 

ymas에게 감사 드리며 올바르게 지적했습니다.

+0

@StevenMoseley '['name ']'형식이 더 깔끔하다는 데 동의하지만, 두 형식 모두 기술적으로 정확합니다. 그것은 OP의 답변을 완전히 바꾸기 때문에 경계선 편집입니다. – IMSoP

+0

@IMSoP 좋은 점, 그것은 극단적 인 편집이었다. 그러나 원래 응답은 문자열 값이 아니라 SimpleXMLElement 객체를 반환합니다. –

+0

@StevenMoseley 아니요,'$ foo-> attributes() -> bar'와'$ foo [ 'bar']'는 정확히 같은 객체를 반환합니다. https://3v4l.org/a3tQo 문자열 값을 원하면 문자열로 변환해야합니다 (예 : '$ userName = (문자열) $ user [ 'name'];' – IMSoP

관련 문제