使用属性解析XML文件

时间:2014-10-02 09:05:50

标签: php 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>';

}

?>

你能帮我解决一下如何解决这个问题

1 个答案:

答案 0 :(得分: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>';
}