0

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

我正在编写一个 php 脚本来制作一个 xml 文件(确切地说是 ansi n42.42 文件)我想要做的是能够定义各种“子树”并将它们合并到最终的 DOMDocument 中。我将这些子树中的每一个定义为扩展的 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会更好吗?)

4

1 回答 1

1

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

于 2012-06-01T10:17:05.987 回答