php中的DOMNode到DOMElement

Sam*_*uel 11 php xml dom

我想一个转换DOMNode对象从调用getElementsByTagName()DOMElement以访问方法,如getElementsByTagName()子元素上.在任何其他语言中,我会投射并且它会很容易,但经过一些快速查看后,PHP没有对象转换.所以我需要知道的是如何DOMElementDOMNode对象中获取对象.

Ion*_*tan 16

你不需要投射任何东西,只需调用方法:

$links = $dom->getElementsByTagName('a');

foreach ($links as $link) {
    $spans = $link->getElementsByTagName('span');
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,DOMElement是一个子类DOMNode.如果你在讨论a DOMNodeList,那么访问这样一个列表中的元素就可以完成,可以使用上面给出的方法,使用foreach()循环,也可以使用以下item()方法DOMNodeList:

$link_0 = $dom->getElementsByTagName('a')->item(0);
Run Code Online (Sandbox Code Playgroud)

  • DOMElement 有额外的方法,这些方法在 DOMNode 中不可用。例如getAttribute()。尽管如果您在 DOMNode 上使用此方法,它将在 PHP 中工作,但它不适用于您的 IDE(在弹出方法列表中不可用)。所以问题是:如何从 getElementsByTagName 获取 DOMElement (2认同)