2010-06-17 70 views
0

我试图从eBay网站使用它们的api获取多个列表的一些信息(itemID,title,pricemileage)。到目前为止,我得到thisphp DOM,从xml文档中获取值,php xml

我使用PHP cUrl作者:文档保存为.xml文件,现在我需要/提取值(itemIDtitlepricemileage)到阵列,并将它们存储在数据库中。

不幸的是,我从来没有使用PHP DOM,我不知道如何提取值。我试图按照the tutorial found on IBM website但我没有成功。一些帮助将不胜感激。

+0

'simplexml'是在PHP中提取XML数据的最简单的方法: – 2010-06-17 18:31:43

+0

 $doc = new DOMDocument(); $doc->load('api.xml'); $items = $doc->getElementsByTagName("GetMultipleItemsResponse"); foreach($GetMultipleItemsResponse as $Item) { $itemID = $Item->getElementsByTagName("ItemID"); $itemID = $Item->item(0)->nodeValue; } echo $itemID; 
Michael 2010-06-17 18:45:01

+0

这应该是一个答案,而不是http://www.php.net/simplexml_load_file一条评论。 – Sjoerd 2010-06-17 18:47:16

回答

2

下面是一个代码示例,从XML文件得到ItemIDs:

<?php 
$doc = new DomDocument(); 
$doc->load('a.xml'); 
$response = $doc->getElementsByTagName('GetMultipleItemsResponse')->item(0); 
$items = $doc->getElementsByTagName('Item'); 
foreach ($items as $item) 
{ 
    $itemID = $item->getElementsByTagName('ItemID')->item(0)->nodeValue; 
    echo $itemID."\n"; 
} 
?> 
  • $doc->getElementsByTagName()返回的DOMNodeList。它可以在foreach循环中使用,它有一个item()方法。
  • A DomNodeList将包含所有匹配的元素。如果您知道只有一个元素,则可以使用->item(0)
  • 检索item()方法返回的DomElement,它继承自DomNode。 DomNode有一个nodeValue属性,它包含元素中的文本。

摘要:使用SimpleXML