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

Php 如何检查DoElement setIdAttribute()是否已设置?,php,dom,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)

假设我有以下代码

$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()将无法工作。现在,我的问题是,如果我有一个domeElement作为函数的输入,为了使domeElement可以是getElementById(),我需要设置IDAttribute()。但是,既然不能设置两次,我如何检查它是否已设置?

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