我目前正在使用php中的DOM,而我所处的上下文需要一些递归,这会弄乱我的代码,但工作正常。
我想保持我的代码清洁与PHP的那个只读的东西,我无法继续。
我正在尝试做类似的事情:
$test = new DOMElement('div');
$test->setAttribute('class','blue');
但是我收到了错误
致命错误:未捕获的异常'DOMException',消息为“否” 修改允许错误'
我可以将setAttribute设置为此元素,直到我将其附加到DOMDocument。有没有办法做到这一点?
我在考虑像
这样的东西class Elem extends DOMElement
{
//and here maybe i could do something to override this readonly
}
这甚至可能吗?
我不想先创建DOMDocument,然后使用createElement()方法并附加它们(我已经这样做了),我只想创建元素,然后在以后附加它们。
答案 0 :(得分:3)
您只能在将DOMElement
添加到DOMDocument
后修改{{1}}。
由于这个类是用C代码实现的,所以你不能简单地覆盖一个方法(即使你愿意重新实现整个方法),因为你无法访问C代码访问的任何内部结构来实际设置属性。