2014-10-02 8 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

Ненавижу ждать ответа :-)

I это решит мою проблему; если у вас есть идея, поделитесь со мной

$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>'; 
} 
Смежные вопросы