【问题标题】:php DOM, get values from xml document, php xmlphp DOM,从 xml 文档中获取值,php xml
【发布时间】:2010-06-17 18:30:02
【问题描述】:

我正在尝试使用他们的 api 从 eBay 网站获取多个列表信息(itemIDtitlepricemileage)。到目前为止,我得到了this

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

不幸的是,我从未使用过 PHP DOM,而且我不知道如何提取这些值。我尝试关注the tutorial found on IBM website,但没有成功。一些帮助将不胜感激。

【问题讨论】:

  • simplexml 是在 PHP 中提取 XML 数据的最简单方法:php.net/simplexml_load_file
  •  $doc = new DOMDocument(); $doc->load('api.xml'); $items = $doc->getElementsByTagName("GetMultipleItemsResponse"); foreach( $GetMultipleItemsResponse as $Item ) { $itemID = $Item->getElementsByTagName( "ItemID" ); $itemID = $Item->item(0)->nodeValue; } 回声 $itemID; 
  • 这应该是一个答案而不是评论。

标签: php dom


【解决方案1】:

以下是从 XML 文件中获取 ItemID 的代码示例:

<?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-&gt;getElementsByTagName() 返回一个 DomNodeList。它可以在 foreach 循环中使用,并且有一个item() 方法。
  • DomNodeList 将包含所有匹配的元素。如果您知道只有一个元素,您可以使用-&gt;item(0) 检索它
  • item() 方法返回一个DomElement,它继承自DomNode。 DomNode 有一个 nodeValue 属性,它包含元素内的文本。

总结:使用SimpleXML

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多