2014-10-02 3 views
0

속성이 포함 된 XML 파일을 읽고 구문 분석하는 방법을 알려주십시오.속성이있는 XML 파일 구문 분석

XML 파일 '질문'노드

<questions> 
    <description> 
     Here goes description.... 
    </description> 
    <evaluation_order> 
     1 
    </evaluation_order> 

    <question text="question1"> 
     <answer score="10">answer 1</answer> 
     <answer score="20">answer 2</answer> 
     <answer score="30">answer 3</answer> 
     <answer score="40">answer 4</answer> 
    </question> 

    <question text="question2"> 
     <answer score="1">answer 5</answer> 
     <answer score="2">answer 6</answer> 
     <answer score="3">answer 6</answer> 
     <answer score="4">answer 7</answer> 
    </question> 
</questions> 

그리고 PHP 코드의 많은이 모양은 다음과 같습니다

<?php 

$questions = simplexml_load_file('xml/workshop_evaluation_questions_1.xml'); 

$questions = json_encode($questions); 
$questions = json_decode($questions, TRUE); 

$name = $questions['description']; 
//echo $name; 
//echo '<br>'; 

$evaluation_order = $questions['evaluation_order']; 
//echo $evaluation_order; 
//echo '<br>'; 

foreach ($questions['question'] as $res) { 
    $text = $res['@attributes']['text']; 

    foreach ($res['answer'] as $ans) { 

     //pr($questions) . ' => '; 
     echo $ans . ' => '; 
     echo $ans->score[0]; // how to get score??? 
     echo '<br>'; 

    } 

    echo '<hr>'; 

} 

?> 

당신이 날이 문제를 해결하시기 바랍니다 어떻게 도와 드릴까요

답변

0

대답을 기다리는 것이 싫어. :-)

이것은 내 문제를 해결할 것입니다; 좋은 아이디어가 있다면 나와 공유하십시오.

$questions = simplexml_load_file("xml/workshop_evaluation_questions_1.xml"); 

$cnt1 = 0; 
foreach($questions->question as $k1=>$v1) { 
    echo ($questions->question[$cnt1]['text']); 
    echo ' => '; 
    echo count($questions->question[$cnt1]->answer); 
    echo '<br>'; 

    $cnt2 = 0; 
    foreach($questions->question[$cnt1]->answer as $k2=>$v2) { 
     echo $questions->question[$cnt1]->answer[$cnt2]; 
     echo ' => '; 
     echo $questions->question[$cnt1]->answer[$cnt2]['score']; 
     echo '<br>'; 
     $cnt2++; 
    } 
    $cnt1++; 
    echo '<hr>'; 
}