1

假设我有以下代码。

$newdom = new DOMDocument();
$elem = new DOMElement('div');
$text = new DOMText('testing');

$elem = $newdom->importNode($elem,true);
$newdom->appendChild($elem);
$text = $newdom->importNode($text,true);
$elem->appendChild($text);
$elem->setAttribute('id','foo');
$elem->setIdAttribute('id',true);
$elem->setIdAttribute('id',true); //set twice will cause C14N() fail
echo $newdom->getElementById('foo')->C14N();

如果 setIdAttribute() 被调用两次,那么 C14N() 将不起作用。现在,我的问题是,如果我有一个 DOMElement 作为函数的输入,为了使 DOMElement 可以是 getElementById(),我需要 setIdAttribute()。但是既然不能设置两次,那么如何检查是否设置了呢?

4

1 回答 1

0

经过几个小时的尝试,就在这篇文章之后,我刚刚找到了解决方案。DOMAttr 中有 isId() 允许检查属性。

于 2013-04-19T07:28:54.383 回答