2017-05-29 128 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>"); 
     } 

` 但我的输出只是给结果数组[0]是这样的: Perancangan Aplikasi模糊多准则决策(FMCDM)Untuk Menentukan汝来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

你的房子在三宝垄吗?我还有一个问题:如果我想为我的输出结果做列表编号。我尝试下面的代码:'$ xml = simplexml_load_string($ hasil)或者死(“Error:Can not create object”); \t \t \t的foreach($ XML->结果 - >结果作为$密钥=> $节点){ \t \t \t回声$密钥; \t \t \t的foreach($节点 - >如$节点绑定){ \t \t \t \t $输出= $节点 - >文字; \t \t \t \t echo $ output。'
'; \t \t \t \t} \t \t \t}“但产量出现 “结果” 不显示号码。 – Atina