如何从DOMNodeList获取raw

时间:2012-08-24 11:13:51

标签: php domdocument

我有一个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]而不是我的原始数据(这是一个网址)。

所以我的问题非常简单,但如何在不将{@ 1}}封装的情况下获取原始数据?

感谢。

2 个答案:

答案 0 :(得分:3)

DOMNodeList::item()将通过索引在DOMNode中提供DOMNodeList。例如,要获取列表中的第一个节点:

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

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

if ($node = $dom->getElementsByTagName('url')->item(0)) {
  $url = $node->nodeValue;
} else {
  // Element does not exist, handle error here
}

答案 1 :(得分:1)

PHP本身 - 即使已宣布使用PHP 5.4进行了改进 - 在显示DomNodeDomNodeList的结构信息方面也不是很好。

您可以执行我在类似问题中概述的内容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 of mine中找到源代码。