0

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

我想调用getElementById()这个结果DOMDocument,但它不知道要查看哪个属性。看来我必须以某种方式告诉它“id”属性是包含每个元素 ID 的属性。

但是,我看不到如何做到这一点。我没有 DTD,所以我不能调用DOMDocument::validate(),我不能设置DOMDocument::validateOnParse,因为DOMDocument在转换完成之前实例不存在,到那时为时已晚,我不能打电话DOMElement::setIdAttribute(),因为我必须手动运行每个元素来执行此操作。

有什么方法可以轻松地getElementById()在 PHP 中调用 XSLT 转换的输出?

4

1 回答 1

0

一种可行的解决方案(虽然不确定效率)是使用 XPath 代替:

$xp = new DOMXPath($xml);
$nodes = $xp->evaluate('//*[@id="blah"]');
$node = $nodes->item(0);
于 2013-05-16T00:49:56.427 回答