nasıl ben kendi veri parçaları istediğim şekilde çıkış için bir xml sayfasını ayrıştırmak?

2 Cevap php

here is the page i want to parse (the api link i gave is just a dev test so its ok to be public) http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m

arayan çıkış im (şimdilik) böyle bir şeydir

 Doc_id: 29638658
 access_key: key-11fg37gwmer54ssq56l3
 secret_password: 1trinfqri6cnv3gf6rnl
 title: Sample
 description: k
 thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg
 page_count: 100

ive i internette bulabilirsiniz ama hiçbir şey iyi çalışıyor her şeyi denedim. i bu bir komut dosyası var

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
  print $item->nodeName . " = " . $item->nodeValue;
 }



 ?>

onun çıkış böyle çıkıyor:

#text = 
  resultset = 

      29638658
      key-11fg37gwmer54ssq56l3
      1trinfqri6cnv3gf6rnl

        Sample


        k

      http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg

        DONE

      100


      29713260
      key-18a9xret4jf02129vlw8
      25fjsmmvl62l4cbwd1vq

        book2


        description bla bla 

      http://i6.scribdassets.com/public/images/uploaded/153065528/oLVqPZMu3zhsOn_thumbnail.jpeg

        DONE

      7

  #text = 

i büyük yardım im gerçekten sıkışmış gerekiyor ve ne yapacağını bilmiyorum. lütfen bana yardım edin. thnx

2 Cevap

Ben bu belgenin XPath sorguları çalıştırmak için izin verecek gibi yeni bir SimpleXmlElement nesnesi haline XML verilerini yüklemek öneririz.

Bunu nasıl çalıştığı hakkında biraz araştırma yapmak gerekir, ama burada birkaç noktalar var ...

Böylece gibi XPath yürütün:

// $xml is a SimpleXMLElement object
$xml = simplexml_load_file('/path/to/file');
$nodes = $xml->xpath('/xpathquery');

/ Tek (sizin durumda RSP) kök düğümü temsil eder. Bir çift eğik çizgi eşleşen herhangi bir düğümü temsil eder. Örneğin / / başlık tüm başlıkları dönecekti. Bir xpath her sorgu sonucu SimpleXMLElement bir dizidir. Öyle gibi ondan veri alabilirsiniz:

# Untested        
$xml = simplexml_load_file('/path/to/file');
$nodes = $xml->xpath('//result');

foreach ($result as $node) {
    // Print out the value in title
    echo $node->title;
}

// Print out the amount of results
echo $xml->rsp->attributes()->totalResultsAvailable;

Sonuçlar numaraları ile son örnek çalışmaz, ama bu çizgisinde olduğunu.

Hızlı ve kirli, yol şeyler olması gerekiyordu:

<?php 
 $x = simplexml_load_file('http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m');
 foreach($x->resultset->result as $v) {
     foreach((array)$v as $kk=>$vv) {
         echo $kk.": ".trim($vv)."<br>\n";
     }
     echo "<br><br>\n";
 }

Eğer istenilen formatta bu irade çıktı:

doc_id: 29638658
access_key: key-11fg37gwmer54ssq56l3
secret_password: 1trinfqri6cnv3gf6rnl
title: Sample
description: k
thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/152418747/xTkjCwQaGf_thumbnail.jpeg
conversion_status: DONE
page_count: 100

doc_id: 29713260
access_key: key-18a9xret4jf02129vlw8
secret_password: 25fjsmmvl62l4cbwd1vq
title: book2
description: description bla bla
thumbnail_url: http://i6.scribdassets.com/public/images/uploaded/153065528/oLVqPZMu3zhsOn_thumbnail.jpeg
conversion_status: DONE
page_count: 7