Atina
Atina

Reputation: 17

How to get value of xml file

My sparql output in xml like this :

<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
    <variable name="judulNaskah"/>
    <variable name="linkNaskah"/>
</head>
<results ordered="false" distinct="false">
<result>
    <binding name="judulNaskah">
        <literal>
                Perancangan Aplikasi Fuzzy Multi Criteria Decision Making (FMCDM) Untuk Menentukan Nilai Ketidakpastian Sistem Pakar
        </literal>
    </binding>
    <binding name="linkNaskah">
        <literal>
                http://seminar.ilkom.unsri.ac.id/index.php/ars/article/view/343
        </literal>
    </binding>
</result>
<result>
    <binding name="judulNaskah">
        <literal>
                Implementasi Metode Fuzzy Sugeno Pada Robot Kapal Penghindar Rintangan
        </literal>
    </binding>
    <binding name="linkNaskah">
        <literal>
                http://seminar.ilkom.unsri.ac.id/index.php/ars/article/view/80
        </literal>
    </binding>
</result>
</results>
</sparql>

I want to get value all of tag literal, I try this code :

$xml=simplexml_load_string($hasil) or die("Error: Cannot create object");foreach ($xml->results->result->binding as $node) {
            $arr = $node->attributes();   // returns an array 
            print ($node->literal);
            print ("<br>");
        }

` But my output just give result array [0] like this : Perancangan Aplikasi Fuzzy Multi Criteria Decision Making (FMCDM) Untuk Menentukan Nilai Ketidakpastian Sistem Pakar http://seminar.ilkom.unsri.ac.id/index.php/ars/article/view/343

How I get value all of array literal?

Anyone please help me.

Upvotes: 0

Views: 80

Answers (1)

rheeantz
rheeantz

Reputation: 1020

It seems like you have object array inside array. Try this following code bellow

$xml=simplexml_load_string($hasil) or die("Error: Cannot create object");
foreach ($xml->results->result as $nodes) {
    foreach ($nodes->binding as $node) {
        echo $node->literal.'<br>';
    }
}   

//echo '<pre>'.print_r( $xml->results->result , true).'</pre>';                                     

Hope it helps

edited part

$xml        = simplexml_load_string($hasil) or die("Error: Cannot create object");
$results    = $xml->results->result;

for($i=0; $i<count($results); $i++) {
    echo $i + 1;
    echo ' .';

    foreach ($results[$i]->binding as $key =>$node) { 
        $output=$node->literal;
        $arr=$node->attributes();
        if ($arr=="linkNaskah"){
            echo "<a href=$output>$output</a><br><br>";
            }
            else {
                echo $key.''.$output.'<br>';
            }
    }

}

Upvotes: 1

Related Questions