Php 如何在XSLT输出上调用getElementById()?

Php 如何在XSLT输出上调用getElementById()?,php,getelementbyid,Php,Getelementbyid,使用PHP,我使用XSLTProcessor::transformToDoc()将一个XML文档转换为另一个XML文档(类型为DOMDocument) 我想在这个生成的DOMDocument上调用getElementById(),但它不知道要查看哪个属性。似乎我不得不告诉它,“id”属性是包含每个元素id的属性 但是我不知道怎么做。我没有DTD,所以我不能调用DOMDocument::validate(),我不能设置DOMDocument::validateOnParse,因为在转换完成之前,D

使用PHP,我使用
XSLTProcessor::transformToDoc()
将一个XML文档转换为另一个XML文档(类型为
DOMDocument

我想在这个生成的
DOMDocument
上调用
getElementById()
,但它不知道要查看哪个属性。似乎我不得不告诉它,“id”属性是包含每个元素id的属性

但是我不知道怎么做。我没有DTD,所以我不能调用
DOMDocument::validate()
,我不能设置
DOMDocument::validateOnParse
,因为在转换完成之前,
DOMDocument
实例不存在,到那时已经太晚了,我不能调用
DOMElement::setIdAttribute()
因为我必须手动运行每个元素才能执行此操作


在PHP中,是否有任何方法可以轻松地对XSLT转换的输出调用
getElementById()

一个可行的解决方案(但不确定效率)是使用XPath:

$xp = new DOMXPath($xml);
$nodes = $xp->evaluate('//*[@id="blah"]');
$node = $nodes->item(0);