我正在使用 DOMDocument 创建一个 HTML 文件,但在使用 getElementsByTagName 方法进行搜索时出现问题。我发现当我产生热时,无法识别我插入的标签。
我尝试使用 DOMXPath,但无济于事:S
现在,我要做的是遍历一个节点的所有子节点并存储在一个数组中,但我需要转换该分数 DOMNodeList,并在做
return (DOMNodeList) $ my_array;
生成语法错误。
我的具体问题是,如何使用 getElementsByTagName 方法或我可以提供的其他替代方法来搜索标签以完成任务?
回想一下我当时正在生成的 DOMDocument。
如果您需要更多信息,我很乐意将其放在问题中。
当然是乔纳森桑普森。
我为编辑问题的方式道歉。我不太了解这种论坛格式。
为了更好地理解我的工作,我将继承链。
我有这个基类
abstract class ElementoBase {
...
}
而且我有这个类继承自前一个类,带有一个抽象函数插入(insert)
abstract class Elemento extends ElementoBase {
...
public abstract function insertar ( $elemento );
}
然后我有一系列代表从上面继承的 HTML 标记的类,即。
class A extends Elemento {
}
...
现在我用来在纸张中插入标签的代码如下:
public function insertar ( $elemento ) {
$this->getElemento ()->appendChild ( $elemento->getElemento () );
}
其中函数getElemento(),返回一个DOMElement
此外,在插入元素之前,根据要插入的 HTML 标记进行一些验证,因为它们都有非常具体的规范。
由于我同时在生成 HTML 代码,所以很明显没有 HTML 文件。
对于你的问题,理论告诉我这样做:
$myListTags = $this->getElemento ()->getElementsByTagName ( $tag );
但我总是返回 null,所以我研究了它,因为我没有加载 HTML 文件,因为如果我
$myHtmlFile = $this->getDocumento ()->loadHTMLFile ( $filename );
$myListTags = $myHtmlFile->getElementsByTagName ( $etiqueta );
我确实返回了 HTML 标签列表
如果您需要更多信息,我很乐意将其放在问题中。