2012-03-14 4 views
0

누군가 제발 나를 도울 수 있는지 궁금합니다.PHP로 XML 요소 추출

필자는 다음 두 XML 파일을 가지고 있습니다.이 파일은 두 개의 파일 속성에서 값을 가져와야합니다. 더 정확하게 '각 파일 이름'에 대해 'userid'와 'locationid'입니다. 궁극적으로 이러한 값은 사용자가 페이지로드시 표시 할 폴더 및 파일을 결정하는 데 사용됩니다.

<?xml version="1.0" encoding="utf-8" ?> 
- <files> 
    <file name="Test 1/Test Pic 2.jpg" source="Test_Pic_2.jpg" size="728573" originalname="Test Pic 2.jpg" thumbnail="Test_Pic_2.jpg" userid="1" locationid="1" description="No description provided" folder="Test_1" /> 
    <file name="Test 1/stags-snow_1544533c.jpg" source="stags-snow_1544533c.jpg" size="21341" originalname="stags-snow_1544533c.jpg" thumbnail="stags-snow_1544533c.jpg" userid="1" locationid="1" description="Deer head." folder="Test_1" /> 
     </files> 

는이 정보를 얻는 방법에 대한 좋은 거래를 모르고하지 인정해야하지만, 약간의 검색 후 나는 적응했습니다 아래에 추가 한 온라인 튜토리얼을 발견했다.

<?php 

    if(! $xml = simplexml_load_file('UploadedFiles/files.xml')) 
    { 
     echo 'unable to load XML file'; 
    } 
    else 
    { 
     foreach($xml as $files) 
     { 
      echo 'userid: '.$file_name->userid.'<br />'; 
      echo 'locationid: '.$file_name->locationid.'<br />'; 
     } 
    } 

?> 

제가하는 데 문제는 내가이 프로그램을 실행할 때, 난 그냥 다음과 같은 결과를 얻을 수 있습니다 :

사용자 ID : locationid : 사용자 ID : locationid : 사용자 ID : locationid :

행 수는 레코드 수와 일치하지만 필드의 값도 얻고 싶습니다.

나는 누군가가 이것에 대해 살펴보고 내가 잘못 될 곳을 알려주고 있는지 궁금해했습니다.

많은 감사

답변

0

난 당신이 뭔가를 필요로 생각 사용해야합니다. (http://php.net/manual/en/simplexmlelement.attributes.php에서 찾을 예) 다시 게시하시기 바랍니다하지 않을 경우이 도움이 및

<?php 
$string = <<<XML 
<a> 
<foo name="one" game="lonely">1</foo> 
</a> 
XML; 

$xml = simplexml_load_string($string); 
foreach($xml->foo[0]->attributes() as $a => $b) { 
    echo $a,'="',$b,"\"\n"; 
} 
?> 

희망. SimpleXML을 기억해야

+0

시간을내어 도와 주셔서 감사합니다. 나는이 예를 어느 정도 이해했다. 그러나 내가 더 깊이 달성해야하는 것을 보았을 때, 내가해야 할 일이 원래 생각했던 것보다 훨씬 복잡하다고 생각하기 때문에 새로운 글을 추가해야 할 수도 있습니다. 감사합니다 – IRHM

+0

아무 문제 없습니다. 문제가 있으면 저에게 이메일을 보내 주시기 바랍니다. –

+0

정말 친절 하네. 많은 감사합니다. – IRHM

0

$file_name는 스크립트가 당신이 가지고있는 전체 PHP 스크립트의 가정에 정의되어 있지 않습니다.

당신은 아마 $files->userid$files->locationid

+0

안녕하세요. 불행히도 나는 이것을 벌써 시도했고 나는 같은 결과를 얻었다. 친절한 관계로 – IRHM

1

네 가지 기본 것들 ​​: 속성

  1. 요소 액세스 : 전송 $elem['attribname']
  2. 텍스트 내용 : (string) $elem
  3. XPath는 $elem->xpath('')
  4. 와 첨자와 $elem->childname
  5. 속성 액세스

userid가 속성이므로 subscripting ['userid']을 사용해야 할 때 요소 액세스 (->userid)를 사용하고 있습니다.