PHP:按属性获取XML元素的值

时间:2014-10-06 17:50:46

标签: php xml

我使用file_get_contents函数获取xml,然后使用它创建一个SimpleXMLElement。

可以在此处看到xml文件:http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Nirvana&api_key=0ca5b0824b7973303c361510e7dbfced

问题是我需要获取lfm-> artist-> image [@ size ='small']的值,我找不到如何操作。

1 个答案:

答案 0 :(得分:1)

您应该使用DOMXPath:http://php.net/manual/en/class.domxpath.php

此XPath查询适用于您的XML:

\\lfm\artist\image[@size='small']

如下:

$doc = new DOMDocument();
$doc->loadXML($url);

$xpath = new DOMXpath($doc);

$elements = $xpath->query("\\lfm\artist\image[@size='small']");


if (!is_null($elements)) {
  foreach ($elements as $element) {
    echo "<br/>[". $element->nodeName. "]";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
      echo $node->nodeValue. "\n";
    }
  }
}