1

SimpleXMLElement を使用して配列結果を出力するための適切な構文を理解するのに苦労しています。私の xml の結果から、配列内で見つかった人の 1 人と自分自身を一致させるようにユーザーに依頼する必要がありますが、これを行う最善の方法がわかりません。

サンプル XML 結果:

[authentication] => SimpleXMLElement Object
    (
        [age] => SimpleXMLElement Object
            (
                [code] => 5
                [ambiguous] => SimpleXMLElement Object
                    (
                        [person] => Array
                            (
                                [0] => SimpleXMLElement Object
                                    (
                                        [name] => Paul  Foreman
                                        [question] => SimpleXMLElement Object
                                            (
                                                [id] => dcalc3
                                                [prompt] => What+do+the+%3Cb%3Elast+four%3C%2Fb%3E+digits+of+your+Social+Security+Number+add+up+to%3F
                                                [answer] => 5
                                            )

                                    )

                                [1] => SimpleXMLElement Object
                                    (
                                        [name] => Paul  Foreman
                                        [question] => SimpleXMLElement Object
                                            (
                                                [id] => dcalc3
                                                [prompt] => What+do+the+%3Cb%3Elast+four%3C%2Fb%3E+digits+of+your+Social+Security+Number+add+up+to%3F
                                                [answer] => 6
                                            )

                                    )

                            )

                    )

            )

    )

探しているソリューション:

<?php
$string = $xml_result;

$xml = new SimpleXMLElement($string);

$is_age_code = $xml->authentication->{'age'}->code;

if($x_is_age_code == '5'){
// code 5 means more than one match found
    // Ask user verification question
        // If answer matches question
               // Set current user as that person
}
?>

配列内の「人」の数を調べて、それらを数字で識別するにはどうすればよいですか?

4

1 に答える 1

0

人数を数えるには:

echo count($xml->authentication->age->ambiguous->person);

個人のサブノードにアクセスするには

echo $xml->authentication->age->ambiguous->person[0]->question->prompt;

またはループで:

foreach ($xml->authentication->age->ambiguous->person as $person) {
    echo $person->question->prompt;
}
于 2013-02-11T21:15:31.497 に答える