php domelement - 在插入时运行方法?

时间:2012-06-01 08:06:49

标签: php domdocument

嗯,我或多或少寻找的是php中的一个事件处理程序...... - 我想。

我正在编写一个php脚本来创建一个xml文件(确切地说是ansi n42.42文件)我想要做的是能够定义各种“子树”并将它们合并到最终DOM文档。我将每个子树定义为具有构建子树所需的那些属性的扩展DOMNode。因为domnode在插入DOMDocument之前是不可变的,所以我定义了一个构建方法,在我将它设置为设置之后运行:

例如在我的课堂上:(为简洁起见,删除了一些部分)

class calibration extends DOMElement{
  var $calibtype="Energy";
  var $coefficients;
  var $id;

  function calibration($coeff,$id=false){
    parent::__construct('Calibration');
    $this->coefficients=$coeff;
    $this->id=$id;
  }
  function build(){ // must be called after the calibration is inserted into a dom-tree.
    $this->setAttribute('Type',$this->calibtype);
    $DOM=$this->ownerDocument;
    $node=$DOM->createElement('Equation');
  }

然后使用它:

$cal = new calibration("-4, 3.12","cal_id");
$n42->firstChild->appendChild($cal);  // n42 is the object extending DOMDocument
$cal->build();

当$ cal附加到树中时,是否有可能使$ cal-> build()自动运行?

(或者我可能在错误的树上咆哮,从一开始我会更好地使用DOMFragment吗?)

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么你可以在你的脚本中添加观察者,他们将负责更改DOMDocument。那就是我理解正确的。