我如何它的数据块解析XML页面输出到我想要的方式?(how do i parse an xml pa

2019-09-26 12:06发布

这里是我想要解析的页面(API的链接我给仅仅是一个开发测试,以便其确定为public) http://api.scribd.com/api?method=docs.getList&api_key=2apz5npsqin3cjlbj0s6m

输出即时寻找的是这样的(现在)

 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

香港专业教育学院尝试了一切,我可以在互联网上找到,但没有工作好。 我有这一个脚本

<?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;
 }



 ?>

其输出出来是这样的:

#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 = 

我需要重点扶持的IM真的卡住,不知道该怎么办。 请请帮助我。 日Thnx

Answer 1:

我建议你的XML数据加载到一个新的SimpleXMLElement对象,因为这将允许您运行对文档的XPath查询。

你需要做它如何工作的一个小小的研究,但这里的一些指点...

执行的XPath像这样:

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

单个/表示根节点(你的情况RSP)。 双斜线表示任何匹配的节点。 例如//标题将返回所有标题。 XPath查询中的每一个的结果是SimpleXMLElements的阵列。 你可以从它像这样得到的数据:

# 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;

与结果号码最后一个例子可能无法正常工作,但它是沿着这些线路。



Answer 2:

以“$ X->的childNodes”你只能直接孩子的。 您可能要检查的PHP文件: http://php.net/manual/en/class.domdocument.php

我认为,这其中可能会更好:
http://si.php.net/manual/en/book.simplexml.php



Answer 3:

快速和肮脏的,事物的方式应该是:

<?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";
 }

在你要求的格式这将输出:

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


文章来源: how do i parse an xml page to output its data pieces to the way i want?