如何检查DOMElement setIdAttribute()是否已设置?

时间:2013-04-19 07:21:22

标签: php dom

假设我有以下代码。

$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()。但由于它不能设置两次,我该如何检查它是否已设置?

1 个答案:

答案 0 :(得分:0)

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