3

我有一个DomDocument,这是不可能的var_dump(这真的让我很生气)我这样做:

var_dump($dom->getElementsByTagName('url'));

在这样的回应中:

<?xml version="1.0" ?>
<rss version="2.0">
  <channel>
      <url>beaute-mode/cheveux/11460--choisir-un-headband</url>
      <title>get_url_article</title>
      <host>myhost</host>
  </channel>
</rss> 

但是我得到了var_dump回显:object(DOMNodeList)[262]而不是我的原始数据(这是一个 URL)。

所以我的问题很简单,但是如何在不被封装的情况下获取原始数据DomNodeList

谢谢。

4

2 回答 2

3

DOMNodeList::item()DOMNodeDOMNodeListby 索引中给出一个。例如,要获取列表中的第一个节点:

$dom->getElementsByTagName('url')->item(0)

要获取元素包含的实际数据,请使用如下代码:

if ($node = $dom->getElementsByTagName('url')->item(0)) {
  $url = $node->nodeValue;
} else {
  // Element does not exist, handle error here
}
于 2012-08-24T11:15:04.293 回答
1

DomNodePHP 本身——即使在 PHP 5.4 中宣布了改进——在显示和的结构信息方面也不是很好DomNodeList

您可以执行我在类似问题Debug a DOMDocument Object in PHP中概述的操作:

$doc = new DOMDocument();
$doc->loadXML($xml);
DomTree::dump($doc->getElementsByTagName('url'));

这将输出以下内容:

`<url>
  `"beaute-mode/cheveux/11460--choisir-un-headband"

您可以在我的这个 Gist 中找到源代码。

于 2012-08-24T11:40:39.157 回答