2017-05-29 10 views
0

このようなXMLでの私のSPARQL出力:xmlファイルの値を取得する方法

私はすべてのタグのリテラル値を取得したい
<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> 

、私はこのコードを試してみてください。

$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>"); 
     } 

` しかし、私の出力は次のようにresult array [0]を与えるだけです: Perancangan Aplikasi Fuzzy Multi Criteria Decision Making(FMCDM)Menentukan Nilai Ketidakpastian Sistem Pakar http://seminar.ilkom.unsri.ac.id/index.php/ars/article/view/343

どのように配列リテラルの値をすべて取得するのですか?

誰でも助けてください。

答えて

1

配列の中にオブジェクト配列があるようです。

$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>';          

怒鳴る、この次のコードを試してみて、それが

$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>'; 
      } 
    } 

} 
+0

編集した部分は、あなたの助けをありがとうお役に立てば幸いです。 – Atina

+0

とにかく、この大学は私の家の近くにあります。 –

+0

あなたの家はスマランにありますか?私は再び質問が1つあります:もし私が出力結果のリスト番号をつけたいのであれば。私はこのコードを試してみます: '$ xml = simplexml_load_string($ hasil)またはdie( "エラー:オブジェクトを作成できません"); \t \t \t foreachの($として$ XML->検索結果>結果キー=> $ノード){ \t \t \tは$キーエコー。 \t \t \t foreachの($ nodes-> $ノードとして結合){ \t \t \t \t $出力= $ノード - >リテラル。 \t \t \t \t echo $ output '
'; \t \t \t \t} \t \t \t}「しかし、出力が表示され、 "結果" の数を表示されません。 – Atina

関連する問題