有没有办法创建自己的DOMNodeList?例如.:
$doc = new DOMDocument(); $elem = $doc->createElement('div'); $nodeList = new DOMNodeList; $nodeList->addItem($elem); // ?@H_404_2@我的想法是扩展DOMDocument类,添加一些将数据作为DOMNodeList返回的有用方法.
是否可以在不编写自己版本的DOMNodeList类的情况下完成它?
您无法通过它的
public interface将项目添加到
DOMNodeList.但是,DOMNodeLists是连接到DOM树时的实时集合,因此将子元素添加到DOMElement将在该元素的子集合(DOMNodeList)中添加一个元素:
$doc = new DOMDocument(); $nodelist = $doc->childNodes; // a DOMNodeList echo $nodelist->length; // 0 $elem = $doc->createElement('div'); $doc->appendChild($elem); echo $nodelist->length; // 1@H_404_2@你说你想添加“一些有用的方法,将数据作为DOMNodeList返回”.在DOMDocument的上下文中,这就是XPath所做的.它允许您查询文档中的所有节点并将它们返回到DOMNodeList中.也许这就是你要找的东西.