ahm*_*med 11 php xpath dom domdocument
当我想测试php数组时,我使用以下代码
print_r($myarray);
Run Code Online (Sandbox Code Playgroud)
但我知道我想看到对象的数据
$xpath = new DOMXPath($doc);
$myobject = $xpath->query('//*[ancestor-or-self::a]');
Run Code Online (Sandbox Code Playgroud)
我用的时候
print_r($myobject);
Run Code Online (Sandbox Code Playgroud)
我得到了那个输出
DOMNodeList Object ( )
Run Code Online (Sandbox Code Playgroud)
我想迭代这个对象的值来测试我的查询结果?
ghb*_*att 21
DOMNodeList是一个有趣的对象,你不会从使用print_r或获取太多信息var_dump.
有许多方法可以查看DOMNodeList对象的数据.这是一个例子:
$xpath = new DOMXpath($dom);
$dom_node_list = $xpath->query($your_xpath_query);
$temp_dom = new DOMDocument();
foreach($dom_node_list as $n) $temp_dom->appendChild($temp_dom->importNode($n,true));
print_r($temp_dom->saveHTML());
Run Code Online (Sandbox Code Playgroud)
(当然,如果要处理XML,请使用saveXML而不是saveHTML.)
DOMNodeList可以像数组一样迭代.如果要从DOMNodeList对象中提取数据并将其放入不同的数据结构(例如数组或stdClass对象),则只需遍历DOMNodeList中的"节点",转换节点的值和/或在将属性添加到新数据结构之前(您希望可用).
可以使用简单的 foreach 来浏览节点,如下所示:
foreach ($myobject as $node) {
echo $node->nodeValue, PHP_EOL;
} // end foreach
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助其他人,重要的代码是
foreach
Run Code Online (Sandbox Code Playgroud)
和项目
$node->nodeValue
Run Code Online (Sandbox Code Playgroud)
有关此课程的更多详细信息,请访问:
http://php.net/manual/en/class.domnodelist.php
var_dump($myobject);可能就是您正在寻找的
| 归档时间: |
|
| 查看次数: |
26397 次 |
| 最近记录: |