我有一个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}}封装的情况下获取原始数据?
感谢。
答案 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进行了改进 - 在显示DomNode
和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 of mine中找到源代码。